近日查看了下自己的mysql 备份,进入备份的目录发现有几个库的文件相当小 , 于是将其拉取到本地导入发现是个错误的文件 ,在看其他(至少是以KB计算的 *KB),发现没问题。
然后跑了一边脚本得看到如下问题 :
[root@newserver14116 task]# ./mysql-backup.sh
Start to Backup...
mysqldump: Got error: 145: Table './af/af_005_comments' is marked as crashed and should be repaired when using LOCK TABLES
mysqldump: Got error: 23: Out of resources when opening file './glasses/glasses_087_comments.MYD' (Errcode: 24) when using LOCK TABLES
mysqldump: Got error: 145: Table './prada/prada_015_comments' is marked as crashed and should be repaired when using LOCK TABLES
mysqldump: Got error: 1016: Can't open file: './wedding/wedding_046_postmeta.frm' (errno: 24) when using LOCK TABLES
BackUp Success!
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]
Start to Backup...
mysqldump: Got error: 145: Table './af/af_005_comments' is marked as crashed and should be repaired when using LOCK TABLES
mysqldump: Got error: 23: Out of resources when opening file './glasses/glasses_087_comments.MYD' (Errcode: 24) when using LOCK TABLES
mysqldump: Got error: 145: Table './prada/prada_015_comments' is marked as crashed and should be repaired when using LOCK TABLES
mysqldump: Got error: 1016: Can't open file: './wedding/wedding_046_postmeta.frm' (errno: 24) when using LOCK TABLES
BackUp Success!
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]
网上查阅了下 这种错可以采用强制导出
--lock-tables=false
使用方法: mysqldump -u root -pMyPassword DbName --lock-tables=false > data.sql
这样表示忽略mysqldump 的错误,强制导出
还有一种方法就是修复表
首先查看表 check
mysql> check table prada_015_comments;
+--------------------------+-------+----------+--------------------------------------------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+--------------------------+-------+----------+--------------------------------------------------------------------------------------------+
| prada.prada_015_comments | check | warning | Table is marked as crashed |
| prada.prada_015_comments | check | error | Size of datafile is: 1089536 Should be: 1090112 |
| prada.prada_015_comments | check | error | Corrupt |
+--------------------------+-------+----------+--------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)
+--------------------------+-------+----------+--------------------------------------------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+--------------------------+-------+----------+--------------------------------------------------------------------------------------------+
| prada.prada_015_comments | check | warning | Table is marked as crashed |
| prada.prada_015_comments | check | error | Size of datafile is: 1089536 Should be: 1090112 |
| prada.prada_015_comments | check | error | Corrupt |
+--------------------------+-------+----------+--------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)
repair 修复表
mysql> repair table prada_015_comments;
+--------------------------+--------+----------+------------------------------------------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+--------------------------+--------+----------+------------------------------------------------------------------------------------------+
| prada.prada_015_comments | repair | info | Found block that points outside data file at 1088852 |
| prada.prada_015_comments | repair | status | OK |
+--------------------------+--------+----------+------------------------------------------------------------------------------------------+
2 rows in set (0.13 sec)mysql> check table prada_015_comments;
+--------------------------+-------+----------+-----------------------------+
| Table | Op | Msg_type | Msg_text |
+--------------------------+-------+----------+-----------------------------+
| prada.prada_015_comments | check | status | OK |
+--------------------------+-------+----------+-----------------------------+
1 row in set (0.01 sec)
+--------------------------+--------+----------+------------------------------------------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+--------------------------+--------+----------+------------------------------------------------------------------------------------------+
| prada.prada_015_comments | repair | info | Found block that points outside data file at 1088852 |
| prada.prada_015_comments | repair | status | OK |
+--------------------------+--------+----------+------------------------------------------------------------------------------------------+
2 rows in set (0.13 sec)mysql> check table prada_015_comments;
+--------------------------+-------+----------+-----------------------------+
| Table | Op | Msg_type | Msg_text |
+--------------------------+-------+----------+-----------------------------+
| prada.prada_015_comments | check | status | OK |
+--------------------------+-------+----------+-----------------------------+
1 row in set (0.01 sec)
没有评论