qua*_*nta 9 mysql mysqldump stored-procedures crash
由于 InnoDB 的一些问题,我将所有数据库转储到新服务器:
mysqldump -E -R --all-databases | pv -b | mysql -u root -p -h new.server
Run Code Online (Sandbox Code Playgroud)
转储过程因错误而停止:
59.9kB assword: 59.9kB
ERROR 145 (HY000) at line 2970: Table './mysql/proc' is marked as crashed and should
be repaired
228MB
mysqldump: Got errno 32 on write
Run Code Online (Sandbox Code Playgroud)
我运行了以下命令来修复所有数据库中的所有表:
mysqlcheck --auto-repair --all-databases
Run Code Online (Sandbox Code Playgroud)
当我检查mysql.proc状态时,我得到:
mysql> check table mysql.proc;
+------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------+-------+----------+----------+
| mysql.proc | check | status | OK |
+------------+-------+----------+----------+
1 row in set (0.02 sec)
Run Code Online (Sandbox Code Playgroud)
但是,重新运行mysqldump命令时,我仍然遇到相同的错误。
我有大约 2000 个存储过程。这可能是错误的原因吗?
小智 8
我刚刚遇到了同样的问题,这是通过发出命令来解决的,假设 mysql 数据目录位于 /var/lib/mysql/mysql
myisamchk -q -r /var/lib/mysql/mysql/proc
来源:http : //dev.mysql.com/doc/refman/5.0/en/myisam-repair.html
这个错误:
第 2970 行出现错误 145 (HY000):表“./mysql/proc”被标记为已崩溃,应修复 228MB mysqldump:写入时出现 errno 32
...表明问题是写入而不是读取,因此对目标数据库进行修复。
| 归档时间: |
|
| 查看次数: |
11610 次 |
| 最近记录: |