Cuando recibimos el mensaje de :
error: cierre de mysql inesperadamente, después aparece la siguiente info que nos indica las posibles razones del error:
error MySQL shutdown unexpectedly
This may be due to a blocked port, missing dependencies, improper privileges, a crash, or a shutdown by another method.
Press the Logs button to view error logs.
CONTENIDOS EN ESTE ARTÍCULO:
–> Lo primero que debemos hacer es revisar los logs de Xampp, disponibles en C:\xampp\mysql\data
–> Si no lo podemos encontrar, podemos utilizar el shell y realizar una búsqueda de los archivos de “log“.
mysql -u root -p
–> Después realizamos la búsqueda de los posibles archivos de log de mysql en xampp:
mysql> show variables like '%log_file%';
–> También podemos activar los informes de log, que probablemente se encuentren desactivados por defecto.
SET GLOBAL general_log = 'ON';
–> Y seleccionar un archivo concreto en el que deseamos que mysql escriba los registros de log:
SET GLOBAL general_log_file = 'my_log.log';
–> Por último podemos ir al archivo my-default.ini (en la carpeta /bin), editarlo y guardarlo de nuevo como my.ini, que será el archivo de configuración general de mysql, y añadir lo siguiente:
general_log = 'ON';
general_log_file = 'my_log.log';
–> SOLUCIÓN: Ante este error realizaremos los pasos mencionados en el enlace y se solucionará el error.
2014-9-22 11:17:25 5800 [Note] InnoDB: Database was not shutdown normally!
2014-9-22 11:17:25 5800 [Note] InnoDB: Database was not shutdown normally!
2014-9-22 11:17:25 5800 [Note] InnoDB: Starting crash recovery.
2014-9-22 11:17:25 5800 [Note] InnoDB: Reading tablespace information from the .ibd files...
2014-9-22 11:17:25 5800 [Note] InnoDB: Restoring possible half-written data pages
2014-9-22 11:17:25 5800 [Note] InnoDB: from the doublewrite buffer...
2014-9-22 11:17:25 5800 [Note] InnoDB: 128 rollback segment(s) are active.
2014-9-22 11:17:25 5800 [Note] InnoDB: Waiting for purge to start
2014-9-22 11:17:25 5800 [Note] InnoDB: 5.6.11 started; log sequence number 1957328
2014-9-22 11:17:26 5800 [Note] Server hostname (bind-address): '*'; port: 3306
2014-9-22 11:17:26 5800 [Note] IPv6 is available.
2014-9-22 11:17:26 5800 [Note] - '::' resolves to '::';
2014-9-22 11:17:26 5800 [Note] Server socket created on IP: '::'.
2014-9-22 11:17:26 5800 [ERROR] Fatal error: Can't open and lock privilege tables: Incorrect key file for table 'user'; try to repair it
SOLUCIÓN:
–> Hacer una copia de seguridad del archivo .cnf
–> Abrir el administrador de tareas o Taskmanager y matar el proceso mysqld.exe
–> Volver a iniciar el servicio de Mysql.
–> Vamos a Xampp/mysql/bin/my.ini
–> Lo abrimos y editamos, añadiendo la siguiente linea:
innodb_force_recovery = 1
– Hacer una copia de seguridad del archivo .cnf
– Abrir el administrador de tareas o Taskmanager y matar el proceso mysqld.exe
innodb_force_recovery = 1
– Si todo esto no funciona, finalmente, desinstalar Xampp, limpiar con ccleaner, reiniciar y volver a instalar.
Podemos probar con diferentes versiones de Xampp, el problema es que a lo mejor necesitamos una versión concreta de PHP para trabajar con nuestro proyecto, y cada versión de Xampp ofrece diferentes versiones de PHP, así que a lo mejor nos vemos en un brete y estamos condicionados a una versión concreta de Xampp.
En ese caso debemos ir solucionando los errores que nos aparezcan paso a paso.
De ahí la importancia fundamental de leer correctamente los logs de error en MySQL y PhpyAdmin.