飘易手里有一位客户的老版本的MYSQL数据库,近期反应无法完整备份,使用的命令行是:
"D:\MySQL\MySQL Server 5.1\bin\mysqldump" -uroot -p123456 --lock-all-tables --all-databases > D:\backup\mysqldump_20210205.sql
报错如下:
mysqldump: Couldn't execute 'show create table `config`': Incorrect information in file: '.\piaoyi.org\config.frm' (1033)
这张表的引擎是MYISAM,无法复制 config.frm 文件,提示文件损坏,另外的 config.MYI 和 config.MYD 可以复制出来。
怎么修复呢?
首先,对于MyISAM存储引擎来说, frm文件并不包含数据内容,它只是表结构的定义。要修复它,先需要知道这个表的结构,比如你之前曾经备份过,或你可以在其他机器的数据库里知道这个表结构。
1,先停止mysql;
2,备份 table_name.frm, table_name.MYI, table_name.MYD 这3个文件,也可以只备份 table_name.MYI, table_name.MYD 这2个数据文件。
3,从mysql数据目录里删除这3个文件;
4,启动mysql;
5,创建这个表 config;可以从备份里获取表结构;
6,停止mysql;
6,复制 table_name.MYI, table_name.MYD 这2个数据文件,到目录里替换新建的的这2个文件;
7,启动mysql
大功告成。
参考:
* How to recover a MySQL database: Incorrect information in file: './xxx.frm'