A veces un apagón repentino o la muerte de nuestro proceso de mysql puede provocar errores de tablas mal cerradas. Sobretodo en tablas de sesiones, logins, etc..mysqld[2978]: 100318 7:34:27 [ERROR] /usr/sbin/mysqld: Incorrect key file for table ‘./home/tlr_boards.MYI’; try to repair it
mysqld[2978]: 100318 16:44:46 [ERROR] /usr/sbin/mysqld: Table ‘./home/tlr_sessions’ is marked as crashed and last (automatic?) repair failed
A veces lanzar un mysqlcheck -A no es suficiente, pero con este script sí conseguimos reparar todas las tablas :
for database in $(mysql --skip-column-names -uadmin -p`cat /etc/psa/.psa.shadow` -e "show databases" ); do echo "bd: $database"; for table in $(mysql --skip-column-names -uadmin -p`cat /etc/psa/.psa.shadow` -e "show tables" $database ); do echo "reparando $table " ; mysqlcheck -uadmin -p`cat /etc/psa/.psa.shadow` -r $database $table ; done ; done ;
Tras la reparación en el log podremos ver algo como esto:mysqld[2978]: 100318 16:45:49 [Note] Found 1821 of 295 rows when repairing ‘./home/tlr_messages’
mysqld[2978]: 100318 16:45:50 [Note] Found 222 of 1 rows when repairing ‘./home/tlr_sessions’
Deja una respuesta