因為myisamchk有許多功能,它在其自己的章節(jié)中描述。
make_binary_release 制作一個編譯MySQL的一個二進(jìn)制的版本。這能用FTP傳送到在ftp.tcx.se網(wǎng)站的“/pub/mysql/Incoming”以方便其它MySQL用戶。
msql2mysql
一個外殼腳本,轉(zhuǎn)換mSQL程序到MySQL。它不能處理所有的情況,但是當(dāng)轉(zhuǎn)換時,它給出一個好起點。
mysql
mysql是一個簡單的SQL外殼(具有GNU readline 能力),它支持交互式和非交互式使用。當(dāng)交互地使用時,查詢結(jié)果以ASCII表的格式被表示。當(dāng)非交互地使用時(例如,作為一個過濾器),結(jié)果是以定位符分隔的格式表示。(輸出格式可以使用命令行選項改變)你可以簡單地象這樣運行腳本:
shell> mysql database < script.sql > output.tab
如果你在客戶中由于內(nèi)存不足造成問題,使用--quick選項!這迫使mysql使用mysql_use_result()而非mysql_store_result()來檢索結(jié)果集合。
mysqlaccess
一個腳本,檢查對主機(jī)、用戶和數(shù)據(jù)庫組合的存取權(quán)限。
mysqladmin
執(zhí)行管理操作的實用程序,例如創(chuàng)建或拋棄數(shù)據(jù)庫,再裝載授權(quán)表,清洗表到磁盤中和再打開日志文件。mysqladmin也可以被用來從服務(wù)器檢索版本,進(jìn)程和狀態(tài)信息。見12.2 管理一個 MySQL 服務(wù)器。
mysqlbug
MySQL錯誤報告腳本。當(dāng)填寫一份錯誤報告到MySQL郵件列表時,應(yīng)該總是使用該腳本。
mysqld
SQL守護(hù)進(jìn)程。它應(yīng)該一直在運行。
mysqldump
以SQL語句或定位符分隔的文本文件將一個MySQL數(shù)據(jù)庫傾倒一個文件中。這是最早由Igor Romanenko編寫的自由軟件的增強(qiáng)版本。見12.3 從MySQL數(shù)據(jù)庫和表傾倒結(jié)構(gòu)和數(shù)據(jù)。
mysqlimport
使用LOAD DATA INFILE將文本文件倒入其各自的表中。見12.4 從文本文件導(dǎo)入數(shù)據(jù)。
mysqlshow 顯示數(shù)據(jù)庫,表,列和索引的信息。
mysql_install_db 以缺省權(quán)限創(chuàng)建MySQL授權(quán)表。這通常僅被執(zhí)行一次。就是在系統(tǒng)上第一次安裝MySQL時。
replace 一個實用程序,由msql2mysql使用,但是有更一般的適用性。replace改變文件中或標(biāo)準(zhǔn)輸入上的字符串。使用一臺有限狀態(tài)機(jī)首先匹配更長的字符串,能被用來交換字符串。例如,這個命令在給定的文件中交換a和b:
shell> replace a b b a -- file1 file2 ...
safe_mysqld 一個腳本,用某些更安全的特征啟動mysqld守護(hù)進(jìn)程,例如當(dāng)一個錯誤發(fā)生時,重啟服務(wù)器并且記載運行時刻信息到一個日志文件中。
--------------------------------------------------------------------------------
注意:在修復(fù)表之前要拷貝他們,注意備份,切記!
1.標(biāo)準(zhǔn)的表修復(fù)
a.試著用 --recover選項修復(fù)表,可以加上 --quick選項試圖只根據(jù)索引的內(nèi)容進(jìn)行修復(fù),這樣做不觸及數(shù)據(jù)文件。
% myisamchk --recover --quick table_name
or
% myk --recover --quick table_name
b.如果問題還存在,在試一下上一步命令,但是要忽略 --quick選項,這樣允許修改數(shù)據(jù)文件。
% myisamchk --recover table_name
or
% myimchk --recover table_name
c.如果還不工作,試一下 --safe-recover 修復(fù)方法。但這種方法比普通方法要慢,但能修復(fù) --recover不能修復(fù)的問題。
% myisamchk --safe-recover table_name
or
% myisamchk --safe-recover table_name
如果在myisamchk or isamchk 由于一個"can't create new temp file:file_name"的錯誤消息在任何一步停止,應(yīng)該重復(fù)該命令并
加入 --force選項強(qiáng)迫清除臨時文件。
2.如果標(biāo)準(zhǔn)修復(fù)失敗這樣做
a.定位到包含崩潰表的數(shù)據(jù)庫目錄中。
b.將該表的數(shù)據(jù)文件移到安全的地方。
c.調(diào)用mysql并通過執(zhí)行下列語句重新創(chuàng)建新的空表,該語句使用表的描述文件
tbl_name.frm重新開始生成新的數(shù)據(jù)和索引文件。
mysql>delete from tbl_name;
d.退出mysql,將原始的數(shù)據(jù)文件移回到數(shù)據(jù)目錄中,替換剛建的新的空文件。
e.在世這樣用標(biāo)準(zhǔn)修復(fù)方法。
為了修復(fù)表的描述文件,可先從備份文件中恢復(fù),然后再用標(biāo)準(zhǔn)修復(fù)方法。
如果由于某些原因沒有備份,如果知道create table 語句,仍然可以恢復(fù)該文件:
a.定位到包含崩潰表的數(shù)據(jù)庫目錄中。
b.將該表的數(shù)據(jù)文件移到安全的地方。如果想使用用索引的話,還需要把索引文件移走。
c.調(diào)用mysql 發(fā)布create table 語句重建表。
d.退出mysql,將原始的數(shù)據(jù)文件移回到數(shù)據(jù)目錄中,替換剛才新建的數(shù)據(jù)文件。如果在第2不中移動了索引文件,則也要講起移回到數(shù)據(jù)庫目錄中。
e.在嘗試標(biāo)準(zhǔn)表修復(fù)方法。
新聞熱點
疑難解答
圖片精選