top
Loading...
8.7.mysqlcheck:表維護和維修程序
8.7. mysqlcheck:表維護和維修程序

mysqlcheck客戶端可以檢查和修復MyISAM表。它還可以優化和分析表。

mysqlcheck的功能類似myisamchk,但其工作不同。主要差別是當mysqld服務器在運行時必須使用mysqlcheck,而myisamchk應用于服務器沒有運行時。使用mysqlcheck好處是不需要停止服務器來檢查或修復表。

Mysqlcheck為用戶提供了一種方便的使用SQL語句CHECK TABLEREPAIR TABLEANALYZE TABLEOPTIMIZE TABLE的方式。它確定在要執行的操作中使用使用哪個語句,然后將語句發送到要執行的服務器上。

3種方式來調用mysqlcheck

shell> mysqlcheck[options] db_name [tables]
shell> mysqlcheck[options] ---database DB1 [DB2 DB3...]
shell> mysqlcheck[options] --all--database

如果沒有指定任何表或使用---database--all--database選項,則檢查整個數據庫。

同其它客戶端比較,mysqlcheck有一個特殊特性。重新命名二進制可以更改檢查表的默認行為(--check)。如果你想要一個工具默認可以修復表的工具,只需要將mysqlcheck重新復制為mysqlrepair,或者使用一個符號鏈接mysqlrepair鏈接mysqlcheck。如果調用mysqlrepair,可按照命令修復表。

下面的名可用來更改mysqlcheck的默認行為:

mysqlrepair

默認選項為--repair

mysqlanalyze

默認選項為--analyze

mysqloptimize

默認選項為--optimize

mysqlcheck支持下面的選項:

·         ---help-

顯示幫助消息并退出。

·         --all--database-A

檢查所有數據庫中的所有表。與使用---database選項相同,在命令行中命名所有數據庫。

·         --all-in-1-1

不是為每個表發出一個語句,而是為命名數據庫中待處理的所有表的每個數據庫執行一個語句。

·         --analyze-a

分析表。

·         --auto-repair

如果某個被檢查的表破壞了,自動修復它。檢查完所有表后自動進行所有需要的修復。

·         --character-sets-dir=path

字符集的安裝目錄。參見5.10.1節,“數據和排序用字符集”。

·         --check-c

檢查表的錯誤。

·         --check-only-changed-C

只檢查上次檢查以來已經更改的或沒有正確關閉的表。

·         --compress

壓縮在客戶端和服務器之間發送的所有信息(如果二者均支持壓縮)。

·         ---database-B

處理數據庫中命名的所有表。使用該選項,所有字名參量被看作數據庫名,而不是表名。

·         ---debug[=debug_options]-# [debug_options]

寫調試日志。debug_options字符串通常為'd:t:o,file_name'

·         --default-character-set=charset

使用charsetas默認字符集。參見5.10.1節,“數據和排序用字符集”。

·         --extended-e

如果你正使用該選項來檢查表,可以確保它們100%地一致,但需要很長的時間。

如果你正使用該選項來修復表,則運行擴展修復,不但執行的時間很長,而且還會產生大量的垃圾行!

·         --fast-F

只檢查沒有正確關閉的表。

·         --force-f

即使出現SQL錯誤也繼續。

·         --host=host_name-h host_name

連接給定主機上的MySQL服務器。

·         --medium-check-m

執行比--extended操作更快的檢查。只能發現99.99%的錯誤,在大多數情況下這已經足夠了。

·         --optimize-o

優化表。

·         --password[=password]-p[password]

當連接服務器時使用的密碼。如果使用短選項形式(-p),選項和 密碼之間不能有空格。如果在命令行中--password-p選項后面沒有 密碼值,則提示輸入一個密碼。

·         --port=port_num-P port_num

用于連接的TCP/IP端口號。

·         --protocol={TCP | SOCKET | PIPE | MEMORY}

使用的連接協議。

·         --quick-q

如果你正使用該選項在檢查表,它防止掃描行以檢查錯誤鏈接的檢查。這是最快的檢查方法。

如果你正使用該選項在修復表,它嘗試只修復索引樹。這是最快的修復方法。

·         --repair-r

執行可以修復大部分問題的修復,只是唯一值不唯一時不能修復。

·         --silent-s

沉默模式。只打印錯誤消息。

·         --socket=path-S path

用于連接的套接字文件。

·         --tables

覆蓋---database-B選項。選項后面的所有參量被視為表名。

·         --user=user_name-u user_name

當連接服務器時使用的MySQL用戶名。

·         --verbose-v

冗長模式。打印關于各階段程序操作的信息。

·         --version-V

顯示版本信息并退出。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html
北斗有巢氏 有巢氏北斗