Como reparar motor InnoDB en MYSQL

( sistemas / sql )

En alguna ocasión podemos encontrarnos errores del tipo: The storage engine for the table doesn't support repair al hacer un chequeo de tablas o bases de datos, especialmente las tablas de la base de datos PSA de Plesk.

La mejor opción es seguir estos pasos para corregirlo:

  1. Paramos MYSQL y hacemos una copia de seguridad de los datos:
    # /etc/init.d/mysqld stop
    
    # mkdir /root/mysql_backup
    
    # cp -r /var/lib/mysql/* /root/mysql_backup/
  2. Agregamos la opción innodb_force_recovery en my.cnf:
    /etc/my.cnf
    
    [mysqld]
    
    innodb_force_recovery = 4
    
  3. Arrancamos mysql:
    # /etc/init.d/mysqld start
  4. Hacemos una copia de seguridad de todas las bases de datos:
    #mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` -A > dump.sql
  5. Volvemos a parar mysql:
    # /etc/init.d/mysqld stop
  6. borramos todas las bases de datos mysql:
    # rm -rf /var/lib/mysql/*
  7. Quitamos la opción innodb_force_recovery de my.cnf
  8. Arrancamos mysql:
    # /etc/init.d/mysqld start
  9. Recuperamos los contenidos desde el backup:
    # mysql -uroot < dump.sql
  10. Reiniciamos mysql:
    # /etc/init.d/mysqld restart
Modificado el 18 Abril, 2015
Creado el 3 enero, 2011
   

Compartiendo conocimiento desde 1995 - I.M.D. I.M.D.