mysql.proc continue de planter, impossible de faire un mysqldump?

9

En raison de certains problèmes avec InnoDB, je vais vider toutes les bases de données sur un nouveau serveur:

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

Le processus de vidage s'est arrêté avec une erreur:

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

J'ai exécuté la commande suivante pour réparer toutes les tables de toutes les bases de données:

mysqlcheck --auto-repair --all-databases

Lorsque j'examine le mysql.procstatut, j'obtiens:

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

Cependant, j'obtiens toujours la même erreur lors de la réexécution de la mysqldumpcommande.

J'ai environ 2000 procédures de magasin. Cela peut-il être la raison de l'erreur?

quanta
la source
2
Avez-vous également réparé la destination?
Philᵀᴹ
Qu'est-ce que c'est 59.9kB assword: 59.9kB? Cela fait-il partie du message d'erreur?
Max Vernon
@quanta done ...
Philᵀᴹ
@MaxVernon: c'est un morceau de canalisation de données via pvavant d'entrer le mot de passe sur l'hôte de destination.
quanta

Réponses:

3

Cette erreur:

ERREUR 145 (HY000) à la ligne 2970: la table './mysql/proc' est marquée comme plantée et doit être réparée 228 Mo mysqldump: Got errno 32 lors de l'écriture

... suggère que le problème est en train d'écrire et non de lire, faites donc une réparation sur la base de données de destination.

Philᵀᴹ
la source
8

Je viens d'avoir le même problème, cela a été corrigé en émettant une commande, en supposant que le répertoire de données mysql est sur / 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

Marshall Mathers
la source
Bien que la réponse acceptée dise déjà de le faire, vous avez en fait montré comment. +1 !!!
RolandoMySQLDBA