El servicio Mysql de Xampp no se levanta
Los motivos pueden ser los siguientes:
El puerto está ocupado
El puerto puede estar ocupado por otro servicio. Normalmente, Mysql escucha en el puerto 3306. Si este puerto está ocupado, el Mysql no se levantará.
Una manera de comprobar si el puerto está ocupado o no, ejecutamos el comando netstat
netstat -a | grep 3306
Si queremos más información sobre el uso de este comando, ejecutar
netstat --help
Después de saber el estado del puerto, podemos hacer 2 cosas. Uno, parar el servicio que está usando el puerto.
Dos, cambiar el puerto del mysql. Normalmente en xampp este fichero está en mysql\bin\my.ini
. Después
de editar el puerto, recordar reiniciar el mysql.
Los ficheros en mysql/data están corrompido
Desde que Xampp adoptó el MariaDB como su gestor de base de datos en vez del Mysql, la inestabilidad aumentó. Puede que se corrompan los ficheros sin motivo alguno. Personalmente, creo que se adoptó esta decisión por motivos comerciales más que los motivos de performance.
Creamos una carpeta con nombre backup-temporal en mysql/backup
. En esta carpeta guardaremos una copia
del contenido de mysql/backup
y mysql/data
.
Para eso, copiamos todo el contenido de la ruta mysql/backup
y mysql/data
a backup-temporal
Pegamos los ficheros desde mysql/backup
en mysql/data
sobreescribiendo todos los ficheros.
Y por último y lo más importante, copiamos el fichero ibdata1
de la carpeta mysql/backup-temporal/data
a mysql/data
. El ibdata es el tablespace del engine Innodb. Pensar 2 veces antes de eliminarlo.
Finalmente, reiniciamos el servicio Mysql.