Из-за некоторых проблем с 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 процедур магазина. Может ли это быть причиной ошибки?
mysql
stored-procedures
mysqldump
crash
кванты
источник
источник
59.9kB assword: 59.9kB
? Это на самом деле часть сообщения об ошибке?pv
перед вводом пароля на хосте назначения.Ответы:
Эта ошибка:
... предполагает, что проблема в записи, а не в чтении, поэтому сделайте исправление в целевой базе данных.
источник
У меня была та же самая проблема, это было исправлено с помощью команды, предполагая, что каталог данных 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
источник