mysql.proc продолжает падать, не может сделать mysqldump?

9

Из-за некоторых проблем с InnoDB я собираюсь сбросить все базы данных на новый сервер:

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

Процесс дампа остановился с ошибкой:

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

Я выполнил следующую команду, чтобы восстановить все таблицы во всех базах данных:

mysqlcheck --auto-repair --all-databases

Когда я проверяю 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)

Тем не менее, я все еще получаю ту же ошибку при повторном запуске mysqldumpкоманды.

У меня есть около 2000 процедур магазина. Может ли это быть причиной ошибки?

кванты
источник
2
Вы тоже починили пункт назначения?
Philᵀᴹ
Что такое 59.9kB assword: 59.9kB? Это на самом деле часть сообщения об ошибке?
Макс Вернон
@ quanta сделано ...
Philᵀᴹ
@MaxVernon: это часть данных, передаваемых по каналу pvперед вводом пароля на хосте назначения.
Quanta

Ответы:

3

Эта ошибка:

ОШИБКА 145 (HY000) в строке 2970: Таблица «./mysql/proc» помечена как аварийная и должна быть исправлена. 228 МБ mysqldump: при записи получено значение 32

... предполагает, что проблема в записи, а не в чтении, поэтому сделайте исправление в целевой базе данных.

Philᵀᴹ
источник
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

Маршал Мазерс
источник
Хотя принятый ответ уже говорит об этом, вы на самом деле показали, как это сделать. +1 !!!
RolandoMySQLDBA