2.11.13 重建或修复表或索引

转储和重新加载方法
如果因为不同版本的 MySQL 在二进制(就地)升级或降级后无法处理它们而重建表,则必须使用转储和重新加载方法。在使用原始版本的 MySQL 升级或降级之前转储表。然后在升级或降级
后重新加载表
。
如果使用dump-and-reload重建表的方式只是为了重建索引,则可以在升级或降级之前或之后进行dump。之后仍然必须重新加载。
如果InnoDB因为某个CHECK TABLE操作提示需要升级表而需要重建表,使用
mysqldump创建转储文件并
使用mysql重新加载该文件。如果
CHECK TABLE操作表明存在损坏或导致InnoDB
失败,请参阅第 15.21.3 节,“强制 InnoDB 恢复”以获取有关使用
innodb_force_recovery重新启动选项的信息InnoDB。要了解CHECK TABLE可能遇到的问题类型,请参阅第 13.7.3.2 节“CHECK TABLE 语句”InnoDB中的注释
。
要通过转储和重新加载表来重建表,请使用
mysqldump创建转储文件并
使用mysql重新加载文件:
mysqldump db_name t1 > dump.sql
mysql db_name < dump.sql
要重建单个数据库中的所有表,请指定不带任何以下表名的数据库名称:
mysqldump db_name > dump.sql
mysql db_name < dump.sql
要重建所有数据库中的所有表,请使用以下
--all-databases选项:
mysqldump --all-databases > dump.sql
mysql < dump.sql