mysqldump 备份时提示 Table is marked as crashed and should be repaired when using LOCK TABLES
1、进入数据库对该表进行检测:(先 use freeris2)
mysql> check tables billinginvoice_history;
+-------------------------+-------+----------+-------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+-------------------------+-------+----------+-------------------------------------------------------+
| freeiris2.billinginvoice_history | check | warning | Table is marked as crashed |
| freeiris2.billinginvoice_history | check | warning | 1 client is using or hasn't closed the table properly |
| freeiris2.billinginvoice_history | check | error | Record at pos: 1175720 is not remove-marked |
| freeiris2.billinginvoice_history | check | error | record delete-link-chain corrupted |
| freeiris2.billinginvoice_history | check | error | Corrupt |
+-------------------------+-------+----------+-------------------------------------------------------+
5 rows in set
2、使用repair解决方法:
mysql> repair table billinginvoice_history;
+-------------------------+--------+----------+------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+-------------------------+--------+----------+------------------------------------------+
| freeiris2.billinginvoice_history | repair | warning | Number of rows changed from 2349 to 2451 |
| freeiris2.billinginvoice_history | repair | status | OK |
+-------------------------+--------+----------+------------------------------------------+
再次进行dump备份就可以了。
备 份mysql数据库时报错:mysqldump: Got error: 145: Table './freeiris2/billinginvoice_history' is marked as crashed and should be repaired when using LOCK TABLES。
这样的错误。
搜索了一下,发现只要在mysqldump的时候加上--lock-tables=false就可以解决问题。
mysqldump -u root -pMyPassword DbName --lock-tables=false > data.sql