mysql数据库导出时报错mysqldump: Got error: 145的解决方法

时间:2022-08-10 14:48:52
 

在给mysql数据库备份时,报错:mysqldump: Got error: 145: Table './jxzhtopenfire/ofoffline' is marked as crashed and should be repaired when using LOCK TABLES。
如上错误的解决方法如下:
1、进入数据库对该表进行检测:
mysql> check tables ofoffline;
+-------------------------+-------+----------+-------------------------------------------------------+
| Table                   | Op    | Msg_type | Msg_text                                              |
+-------------------------+-------+----------+-------------------------------------------------------+
| jxzhtopenfire.ofoffline | check | warning  | Table is marked as crashed                            |
| jxzhtopenfire.ofoffline | check | warning  | 1 client is using or hasn't closed the table properly |
| jxzhtopenfire.ofoffline | check | error    | Record at pos: 1175720 is not remove-marked           |
| jxzhtopenfire.ofoffline | check | error    | record delete-link-chain corrupted                    |
| jxzhtopenfire.ofoffline | check | error    | Corrupt                                               |
+-------------------------+-------+----------+-------------------------------------------------------+
5 rows in set
2、使用repair解决方法:
mysql> repair table ofoffline;
+-------------------------+--------+----------+------------------------------------------+
| Table                   | Op     | Msg_type | Msg_text                                 |
+-------------------------+--------+----------+------------------------------------------+
| jxzhtopenfire.ofoffline | repair | warning  | Number of rows changed from 2349 to 2451 |
| jxzhtopenfire.ofoffline | repair | status   | OK                                       |
+-------------------------+--------+----------+------------------------------------------+
再次进行dump备份就可以了。

备份mysql数据库时报错:mysqldump: Got error: 145: Table './jxzhtopenfire/ofoffline' 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