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.