Hoy hablaremos sobre un error común en MySQL de PhpMyAdmin:
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.

Error MySQL Xampp

 
 

 

Posibles razones del error MySQL shutdown unexpectedly“:

– Hay otro programa utilizando el puerto de MySQL (puerto 3306).
– No estamos ejecutando Xampp como Administrador.
– El archivo ibdata está dando problemas.
Puede que el error de MySQL tenga que ver con el archivo ibdata1

   
, que se encuentra en el directorio C:\xampp\mysql\data

En ese caso puede que recibamos el error: ibdata1 can’t be opened in read-write mode
– Cualquier otro tipo de error en la instalación de Xampp (por ello comenzaremos haciendo un backup completo del directorio C:/Xampp, y una copia de seguridad de nuestras bases de datos).

 

Revisando los errores en los archivos de Log de MySQL

– 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

consola mysql xampp

Después realizamos la búsqueda de los posibles archivos de log de mysql en xampp:

mysql> show variables like '%log_file%';

 

buscar log mysql xampp

 

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';

 

 

También podemos ir al archivo my-default.ini (en la carpeta /bin), editarlo y regrabarlo 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';

 

Encontraremos el archivo de log de errores en C:\xampp\mysql\data

En este caso el log arrojaba la siguiente información:

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
 

 

En este caso una posible solución puede ser:

– Hacer una copia de seguridad del archivo .cnf

– Abrir el administrador de tareas o Taskmanager y matar el proceso mysqld.exe

 

Si esto no funciona, hacer lo siguiente:

– Vamos a Xampp/mysql/bin/my.ini

Lo abrimos y editamos, añadiendo la siguiente linea:

innodb_force_recovery = 1

 

Posibles soluciones a errores de MySQL en Xampp:

– También podemos comprobar otras aplicaciones corriendo en los puertos que necesitamos. Existe la posibilidad de que Skype interactue con Xampp y provoque errores. Apagar Skype y volver a reiniciar Xampp.

– Cambiar el número de puerto en el que inicia el servicio de MySQL.

– Iniciar Mysql y Apache pero no como servicios del sistema.

– Vamos a Xampp/mysql/bin/my.ini

Lo abrimos y editamos, añadiendo la siguiente linea:

innodb_force_recovery = 1

 

– Si todo esto no funciona, finalmente, derribar y edificar de nuevo… o sea, 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.
 


Etiquetas del articulo: ,


Suscríbete para acceder a la zona privada

Suscribiéndote a la lista de correo de El Taller del Bit conseguirás entrar a la zona privada de descargas con materiales exclusivos (ebooks, artículos privados, plugins, descargas de exámenes resueltos ...)

Gracias. Te has suscrito con éxito!