2010-11-28 9 views

Respuesta

6

tratar repair mesa, otra buena article


La sección relevante desde el primer eslabón:

base de datos MySQL le permite definir un motor de almacenamiento de MySQL diferente para diferentes tablas. El motor de almacenamiento es el motor utilizado para almacenar y recuperar datos. La mayoría de los motores de almacenamiento populares son MyISAM e InnoDB.

Las tablas MyISAM finalmente se corrompen. Este es un hecho de la vida.

Afortunadamente, en la mayoría de los casos, la corrupción de la tabla MyISAM es fácil de arreglar.

Para el montaje de una sola tabla, conectarse a la base de datos MySQL y emitir una:

repair TABLENAME 

de arreglar todo, ir con:

/usr/local/mysql/bin/mysqlcheck --all-databases -uUSERNAME -pPASSWORD -r 

Muchas veces, las tablas MyISAM obtendrán corrupto y ni siquiera sabrá al respecto a menos que revise los archivos de registro.

Le sugiero que agregue esta línea a su archivo de configuración /etc/my.cnf. Se fijará automáticamente tablas MyISAM tan pronto como se corrompen:

[mysqld] 
myisam-recover=backup,force 

http://www.softwareprojects.com/resources/programming/t-how-to-fix-mysql-database-myisam-innodb-1634.html

+0

ok gracias la reparación no funcionó para mi crearé una nueva base de datos ;-) – Kohan95

+0

¿los enlaces siguen siendo válidos después de todo este tiempo? Creo que deberías actualizar la respuesta para agregar las partes relevantes – davejal

0

Voy a explicar los detalles que he probado.

Recibí este "Formato de archivo incorrecto" después de realizar el mysqldump. Es similar a que tenemos el problema en el inicio/consulta del servidor de las tablas.

Fui a la carpeta mysql/data/yourdatabasename y revisé la tabla. (Para los tipos de tablas MYISAM, tenemos .frm, .MYI, .MYD.) Encontré que la tabla solo tiene tablename.frm. Así que acabo de mover la parte frm solo porque ya no es necesario debido a la falta de archivos .MYI y .MYD. Hice lo mismo para algunas tablas más que encontraron con el problema de formato de archivo incorrecto.

En mi caso, las tablas que eliminé no son MYI/MYD y algunas de las tablas no tienen datos. Por favor, asegúrese de ambos casos antes de hacer nada de esto. Si lo hace para la tabla de datos disponibles, terminará con la pérdida de datos para las tablas que elimine.

20

Tipo repair table 'table_name' use_frm en el editor SQL y ejecútelo. Esto repara el índice.Buen trabajo ...

+0

¡Muchas gracias! Resolvió un problema con un 50G myisam tbl con este método –

+3

Tenga en cuenta que use_frm recreará el índice MyISAM; también perderás tu valor auto_increment. ¡Cuidado! –

Cuestiones relacionadas