一、mysqlcheck簡介
mysqlcheck客戶端可以檢查和修復MyISAM表。它還可以優化和分析表。
mysqlcheck的功能類似myisamchk,但其工作不同。主要差別是當mysqld服務器在運行時必須使用mysqlcheck,而myisamchk應用於服務器沒有運行時。使用mysqlcheck的好處是不需要停止服務器來檢查或修復表。使用myisamchk修復失敗是不可逆的。
Mysqlcheck為用戶提供了一種方便的使用SQL語句CHECK TABLE、REPAIR TABLE、ANALYZE TABLE和OPTIMIZE TABLE的方式。它確定在要執行的操作中使用使用哪個語句,然後將語句發送到要執行的服務器上。
同其它客戶端比較,mysqlcheck有一個特殊特性。重新命名二進制可以更改檢查表的默認行為(--check)。如果你想要一個工具默認可以修復表的工具,只需要將mysqlcheck重新復制為mysqlrepair,或者使用一個符號鏈接mysqlrepair鏈接mysqlcheck。如果調用mysqlrepair,可按照命令修復表。
下面的名可用來更改mysqlcheck的默認行為:
mysqlrepair
默認選項為--repair
mysqlanalyze
默認選項為--analyze
mysqloptimize
默認選項為--optimize
二、mysqlcheck的使用
1.有3種方式來調用mysqlcheck:
復制代碼 代碼如下:
shell> mysqlcheck[options] db_name [tables]
shell> mysqlcheck[options] ---database DB1 [DB2 DB3...]
shell> mysqlcheck[options] --all--database
如果沒有指定任何表或使用---database或--all--database選項,則檢查整個數據庫。
2.修復所有的數據庫
復制代碼 代碼如下:mysqlcheck -a -c -o -r -m --all-databases -uroot -p
使用上面的命令即可最佳化所有數據庫
參數含意:
復制代碼 代碼如下:-a = Analyse given tables.
-c = Check table for errors
-o = Optimise table
-r = Can fix almost anything except unique keys that aren't unique
-m = --medium-check
注:MYSQL版本為5.5時,命令中請刪除-o
3.修復指定的數據庫
復制代碼 代碼如下:mysqlcheck -o -r -uroot -p888888 dataname
mysqlcheck -hlocalhost -auto-repair -uroot -p****** dataname
4.附帶簡單講一下mysqlcheck使用詳解
用法:
復制代碼 代碼如下:mysqlcheck [OPTIONS] database [tables]
mysqlcheck [OPTIONS] –databases DB1 [DB2 DB3...]
mysqlcheck [OPTIONS] –all-databases
常用選項:
-A 所有數據庫
-a 分析指定的表
-c 檢查庫或表
-r 修復庫或表
-o 優化指定的表
-h mysql服務主機
-P 端口
-u 用戶名
-p 密碼
--auto-repair 修復已損壞表
三、獲得mysqlcheck.exe
通過mysql.com下載你對應版本號的mysql安裝包(noinstall 無需安裝版本)。安裝完mysql數據庫即安裝了此命令,在路徑mysql\mysql server 5.0\bin下。
四、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
顯示版本信息並退出。