O mysql.proc continua travando, não pode executar um mysqldump?

9

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.procstatus, 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 mysqldumpcomando.

Eu tenho aproximadamente 2000 procedimentos de armazenamento. Essa pode ser a razão do erro?

quanta
fonte
2
Você também reparou o destino?
Philᵀᴹ
O que é 59.9kB assword: 59.9kB? Isso realmente faz parte da mensagem de erro?
Max Vernon
@quanta done ...
Philᵀᴹ
@MaxVernon: é uma parte de canalização de dados pvantes de digitar a senha no host de destino.
quanta

Respostas:

3

Esse erro:

ERRO 145 (HY000) na linha 2970: A tabela './mysql/proc' está marcada como travada e deve ser reparada 228MB mysqldump: Gotno 32 na gravação

... sugere que o problema está gravando e não está sendo lido, assim como um reparo no banco de dados de destino.

Philᵀᴹ
fonte
8

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

Marshall Mathers
fonte
Embora a resposta aceita já diga para fazer isso, você realmente mostrou como. +1 !!!
RolandoMySQLDBA 23/09