表和索引的改變是指MySQL處理數(shù)據(jù)類型和字符集的方式。 CHECK TABLE、mysqlcheck 或 mysql_upgrade 報(bào)告必要的表修復(fù)或升級(jí)。
重建表
重建表的方法有很多種。下面列出了其中一些方法 –
轉(zhuǎn)儲(chǔ)和重新加載方法
ALTER TABLE 方法
修復(fù)表方法
讓我們簡(jiǎn)要了解一下它們 –
轉(zhuǎn)儲(chǔ)和重新加載方法
如果由于不同版本的 MySQL 版本在二進(jìn)制(就地)升級(jí)或下載后無(wú)法處理表而需要重建表,則需要使用此轉(zhuǎn)儲(chǔ)和重新加載方法.
表可以通過(guò)轉(zhuǎn)儲(chǔ)和重新加載來(lái)重建。這可以通過(guò)使用“mysqldump”并創(chuàng)建轉(zhuǎn)儲(chǔ)文件并允許 mysql 重新加載該文件來(lái)完成。這可以使用以下命令來(lái)完成 –
mysqldump db_name t1 > dump.sql mysql db_name < dump.sql
登錄后復(fù)制
如果必須在單個(gè)數(shù)據(jù)庫(kù)中重建所有表,則可以指定數(shù)據(jù)庫(kù)名稱而不使用任何表名稱。可以使用以下命令來(lái)完成 –
mysqldump db_name > dump.sql mysql db_name < dump.sql
登錄后復(fù)制
如果所有數(shù)據(jù)庫(kù)中的所有表都必須重建,則必須使用“??所有數(shù)據(jù)庫(kù)”選項(xiàng)。可以使用以下命令來(lái)完成 –
mysqldump --all-databases > dump.sql mysql < dump.sql
登錄后復(fù)制
ALTER TABLE 方法
如果需要使用 ALTER TABLE 方法重建表,則可以使用“null”更改??梢允褂?ALTER TABLE 語(yǔ)句來(lái)更改表,以便它可以使用存儲(chǔ)引擎。讓我們舉個(gè)例子:假設(shè)TblName是一個(gè)InnoDB表,下面的語(yǔ)句可以用來(lái)重建表 –
ALTER TABLE TblName ENGINE = InnoDB;
登錄后復(fù)制
REPAIR TABLE 方法
REPAIR TABLE 方法僅適用于 MyISAM、ARCHIVE 和 CSV 表。如果表檢查操作表明文件已損壞或需要升級(jí),則可以使用語(yǔ)句 REPAIR TABLE。讓我們舉個(gè)例子:為了修復(fù) MyISAM 表,可以執(zhí)行以下語(yǔ)句 –
REPAIR TABLE TblName;
登錄后復(fù)制
mysqlcheck –repair 提供對(duì) REPAIR TABLE 語(yǔ)句的命令行訪問(wèn)。這可能是修復(fù)表的更方便的方法,因?yàn)槟梢允褂?–databases 來(lái)修復(fù)數(shù)據(jù)庫(kù)中的特定表,或使用 –all-databases 選項(xiàng)來(lái)修復(fù)所有數(shù)據(jù)庫(kù)中的所有表??梢允褂靡韵旅顏?lái)完成 –
mysqlcheck −−repair −−databases db_name ... mysqlcheck −−repair −−all−databases
登錄后復(fù)制
以上就是重建或修復(fù) MySQL 表或索引的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!






