mysql.proc sigue fallando, ¿no puede hacer un mysqldump?

9

Debido a algunos problemas con InnoDB, voy a volcar todas las bases de datos a un nuevo servidor:

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

El proceso de volcado se detuvo con error:

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

Ejecuté el siguiente comando para reparar todas las tablas en todas las bases de datos:

mysqlcheck --auto-repair --all-databases

Cuando examino el mysql.procestado, obtengo:

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

Sin embargo, sigo teniendo el mismo error cuando vuelvo a ejecutar el mysqldumpcomando.

Tengo aproximadamente 2000 procedimientos de tienda. ¿Puede ser esa la razón del error?

quanta
fuente
2
¿Has reparado también el destino?
Philᵀᴹ
¿Qué es 59.9kB assword: 59.9kB? ¿Es eso realmente parte del mensaje de error?
Max Vernon
@quanta done ...
Philᵀᴹ
@MaxVernon: es una pieza de canalización de datos pvantes de ingresar la contraseña en el host de destino.
quanta

Respuestas:

3

Este error:

ERROR 145 (HY000) en la línea 2970: la tabla './mysql/proc' está marcada como bloqueada y debe repararse 228MB mysqldump: Errno 32 al escribir

... sugiere que el problema es escribir no leer, por lo tanto, realice una reparación en la base de datos de destino.

Philᵀᴹ
fuente
8

Acabo de tener el mismo problema, esto se solucionó emitiendo un comando, suponiendo que el directorio de datos mysql está en / var / lib / mysql / mysql

myisamchk -q -r / var / lib / mysql / mysql / proc

Fuente: http://dev.mysql.com/doc/refman/5.0/en/myisam-repair.html

Marshall Mathers
fuente
Aunque la respuesta aceptada ya dice hacer esto, en realidad mostraste cómo. +1 !!!
RolandoMySQLDBA