Devido a alguns problemas com o InnoDB, vou despejar todos os bancos de dados em um novo servidor:
mysqldump -E -R --all-databases | pv -b | mysql -u root -p -h new.server
O processo de despejo foi interrompido com erro:
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
Eu executei o seguinte comando para reparar todas as tabelas em todos os bancos de dados:
mysqlcheck --auto-repair --all-databases
Quando examino o mysql.proc
status, recebo:
mysql> check table mysql.proc;
+------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------+-------+----------+----------+
| mysql.proc | check | status | OK |
+------------+-------+----------+----------+
1 row in set (0.02 sec)
No entanto, ainda recebo o mesmo erro ao executar novamente o mysqldump
comando.
Eu tenho aproximadamente 2000 procedimentos de armazenamento. Essa pode ser a razão do erro?
mysql
stored-procedures
mysqldump
crash
quanta
fonte
fonte
59.9kB assword: 59.9kB
? Isso realmente faz parte da mensagem de erro?pv
antes de digitar a senha no host de destino.Respostas:
Esse erro:
... sugere que o problema está gravando e não está sendo lido, assim como um reparo no banco de dados de destino.
fonte
Eu apenas tive o mesmo problema, isso foi corrigido emitindo um comando, assumindo que o diretório de dados mysql está em / var / lib / mysql / mysql
myisamchk -q -r / var / lib / mysql / mysql / proc
Fonte: http://dev.mysql.com/doc/refman/5.0/en/myisam-repair.html
fonte