10

Due to some problems with InnoDB, I'm going to dump all databases to a new server:

mysqldump -E -R --all-databases | pv -b | mysql -u root -p -h new.server          

The dump process stopped with error:

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

I've ran the following command to repair all tables in all databases:

mysqlcheck --auto-repair --all-databases

When I examine the mysql.proc status, I get:

mysql> check table mysql.proc;
+------------+-------+----------+----------+
| Table      | Op    | Msg_type | Msg_text |
+------------+-------+----------+----------+
| mysql.proc | check | status   | OK       |
+------------+-------+----------+----------+
1 row in set (0.02 sec)

However, I still get the same error when re-running the mysqldump command.

I have approximately 2000 store procedures. Can that be the reason for the error?

Hannah Vernon
  • 70,928
  • 22
  • 177
  • 323
quanta
  • 1,006
  • 9
  • 22
  • 36

2 Answers2

8

I just had the same problem, this was fixed by issuing a command, assuming mysql data dir is on /var/lib/mysql/mysql

myisamchk -q -r /var/lib/mysql/mysql/proc

Source : http://dev.mysql.com/doc/refman/5.0/en/myisam-repair.html

sumeetgautam
  • 329
  • 2
  • 4
3

This error:

ERROR 145 (HY000) at line 2970: Table './mysql/proc' is marked as crashed and should be repaired 228MB mysqldump: Got errno 32 on write

... suggests that the problem is writing not reading, so do a repair on the destination database.

Philᵀᴹ
  • 31,952
  • 10
  • 86
  • 108