MySQL 數(shù)據(jù)表修復(fù)方法小結(jié)
本文主要講check table和repair table指令;
1. 指令詳解
在檢查、修復(fù)表,除了用myisamchk指令,還可以用check table、repair table指令。(指令不區(qū)分大小寫)
- 檢查表是否有錯(cuò)誤
CHECK TABLE對(duì)MyISAM和InnoDB表有作用。
對(duì)于MyISAM表,關(guān)鍵字統(tǒng)計(jì)信息會(huì)被更新,CHECK TABLE也可以檢查視圖是否有錯(cuò)誤,比如在視圖定義中被引用的表已不存在。
名詞解釋:
- InnoDB,是MySQL的數(shù)據(jù)庫(kù)引擎之一,現(xiàn)為MySQL的默認(rèn)存儲(chǔ)引擎,為MySQL AB發(fā)布binary的標(biāo)準(zhǔn)之一。
- MyISAM是MySQL的默認(rèn)數(shù)據(jù)庫(kù)引擎(5.5版之前),由早期的ISAM所改良。雖然性能極佳,但卻有一個(gè)缺點(diǎn):不支持事務(wù)處理(transaction)。不過(guò),在這幾年的發(fā)展下,MySQL也導(dǎo)入了InnoDB(另一種數(shù)據(jù)庫(kù)引擎),以強(qiáng)化參照完整性與并發(fā)違規(guī)處理機(jī)制,后來(lái)就逐漸取代MyISAM。
說(shuō)明:一些只對(duì)myisam表有作用(對(duì)innodb和視圖無(wú)效)的選項(xiàng)介紹:
- QUICK:不掃描行,不檢查錯(cuò)誤的鏈接。
- FAST:只檢查沒(méi)有被正確關(guān)閉的表。
- CHANGED:只檢查自上次檢查后被更改的表,和沒(méi)有被正確關(guān)閉的表。
- MEDIUM:掃描行,以驗(yàn)證被刪除的鏈接是有效的。也可以計(jì)算各行的關(guān)鍵字校驗(yàn)和,并使用計(jì)算出的校驗(yàn)和驗(yàn)證這一點(diǎn)。
- EXTENDED:對(duì)每行的所有關(guān)鍵字進(jìn)行一個(gè)全面的關(guān)鍵字查找。這可以確保表是100%一致的,但是花的時(shí)間較長(zhǎng),所以很少使用。
修復(fù)有錯(cuò)誤的表
REPAIR TABLE 用于修復(fù)被破壞的表。
默認(rèn)情況下,REPAIR TABLE與myisamchk --recover tbl_name具有相同的效。
REPAIR TABLE對(duì)MyISAM和ARCHIVE表起作用
語(yǔ)法如下: REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM] quick:repair只修復(fù)索引,等價(jià)于“myisamchk --recover --quick tablename” extended:MySQL會(huì)一行一行地創(chuàng)建索引行,等價(jià)于”myisamchk --safe-recover tablename“ use_frm:如果.MYI索引文件缺失或標(biāo)題被破壞,則使用此選項(xiàng),用來(lái)自.frm文件重新創(chuàng)建.MYI文件。這種修復(fù)不能使用myisamchk來(lái)完成;在repair常規(guī)無(wú)法完成時(shí),才會(huì)使用這個(gè)選項(xiàng),如果表被壓縮不能使用。 no_write_to_binlog:repair默認(rèn)是寫到二進(jìn)制文件的,如果有主從模式的話,repair也會(huì)在從庫(kù)執(zhí)行;使用此選項(xiàng)將會(huì)禁止寫入到二進(jìn)制文件中。
2. 操作方法:
命令提示符(cmd指令)操作方法
輸入cmd進(jìn)入命令提示符

登錄MySQL
輸入指令msyql -u用戶名 -p密碼

注意:指令必須遵循上圖格式,空格不能少也不能多;
選擇數(shù)據(jù)庫(kù)
MySQL中可以創(chuàng)建多個(gè)數(shù)據(jù)庫(kù),先選擇再操作;

注意:分號(hào)(;)不能省略。
注意:如果你記住了庫(kù)名,不需要顯示所有庫(kù)的步驟。
檢查表或者修復(fù)表
自此可以輸入check table指令檢查表,也可以輸入repair table修復(fù)表。下圖為檢查表。

mysql> check table t1 medium; 等價(jià)于 # myisamchk --medium-check tablename
快速檢查沒(méi)有被正確關(guān)閉的表
mysql> check table 表名 quick fast;
注意:操作到步驟1.4就可以了。
SQLyog 操作方法(推薦)
SQLyog 是圖像界面操作更直觀,更簡(jiǎn)單。操作邏輯和指令是一樣的,沒(méi)有區(qū)別;
下圖,我用repair table指令做例子,所有的指令操作都是如此;
- 打開(kāi)SQLyog
- 輸入指令
- 執(zhí)行指令

操作成功如下圖:

注意:數(shù)據(jù)表越大操作越慢
到此這篇關(guān)于MySQL 數(shù)據(jù)表修復(fù)方法小結(jié)的文章就介紹到這了,更多相關(guān)MySQL 數(shù)據(jù)表修復(fù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL中的系統(tǒng)庫(kù)(sys系統(tǒng)庫(kù)、information_schema)調(diào)優(yōu)方法
MySQL性能調(diào)優(yōu)涉及數(shù)據(jù)庫(kù)設(shè)計(jì)、查詢優(yōu)化、配置及硬件調(diào)整,MySQL性能調(diào)優(yōu)是一個(gè)復(fù)雜且多維度的過(guò)程,下面從數(shù)據(jù)庫(kù)設(shè)計(jì)、查詢優(yōu)化、配置參數(shù)調(diào)整、硬件優(yōu)化幾個(gè)方面為你介紹相關(guān)的調(diào)優(yōu)方法,感興趣的朋友跟隨小編一起看看吧2025-08-08
Mysql systemctl start mysqld報(bào)錯(cuò)的問(wèn)題解決
最近運(yùn)行Mysql發(fā)現(xiàn)報(bào)錯(cuò),本文就來(lái)介紹一下Mysql systemctl start mysqld報(bào)錯(cuò)的問(wèn)題解決,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06
ubuntu kylin 14.10下多個(gè)mysql 5.7.14安裝教程
這篇文章主要為大家分享了ubuntu kylin 14.10下多個(gè)mysql 5.7.14安裝教程,感興趣的朋友可以參考一下2016-08-08
Docker部署Mysql數(shù)據(jù)庫(kù)的詳細(xì)步驟
這篇文章主要介紹了如何使用Docker拉取和部署MySQL鏡像,配置鏡像源,修改容器時(shí)區(qū),導(dǎo)入數(shù)據(jù),并通過(guò)可視化工具連接和管理數(shù)據(jù)庫(kù),需要的朋友可以參考下2025-03-03

