El problema de MySQL desactivado en XAMPP


Instalar XAMPP es una forma rápida de tener configurado y funcionando un servidor Apache con PHP y bases de datos MySQL.


Pero en ocasiones, debido a algún tipo de problema de configuración de MySQL, XAMPP da un error y no es posible arrancar el servicio MySQL. Si se comprueba el estado de las bases de datos utilizando el panel de control de XAMPP (status), se observará un mensaje de advertencia como el siguiente: "MySQL database DEACTIVATED" (base de datos MySQL DESACTIVADA).


Cómo activar MySQL en XAMPP en 2 pasos


Aunque no estoy seguro de las causas exactas de este error, hay un truco para repararlo rápidamente y activar MySQL en XAMPP con 2 pasos sencillos:

  • En primer lugar, no instale MySQL como un servicio de Windows que se arrancaría por defecto junto con el sistema operativo. Ésta es una opción durante la instalación de XAMPP: simplemente hay que dejar sin marcar la casilla de instalar las bases de datos MySQL como un servicio del sistema.

  • Finalmente, cree un archivo de configuración MySQL para la nueva instalación de MySQL (lo cual puede hacerse automáticamente con Win MySQL admin).

En efecto, existe una forma automática de generar un archivo de configuración MySQL básico usando las herramientas instaladas por defecto en XAMPP. Sólo hay que ir a la [carpeta de instalación de XAMPP] / mysql / bin y ejecutar winmysqladmin.exe. En el cuadro de diálogo habría que escribir un nuevo nombre de usuario y contraseña, y dejar que el programa de gestión de MySQL genere automáticamente el archivo de inicialización MySQL por defecto.


¡Y eso es todo! Con desactivar el arranque inicial de MySQL como servicio de Windows por defecto, y crearle un archivo de configuración MySQL por defecto, con un nombre de usuario y contraseña definidos, debería bastar para cambiar el estado de "MySQL database deactivated" a MySQL database ACTIVATED (base de datos MySQL ACTIVA).


Cómo comprobar el estado activo de MySQL


El estado de las bases de datos MySQL puede comprobarse abriendo el panel de control de XAMPP: el servicio de MySQL debería tener ahora una etiqueta verde al lado con el mensaje running (en ejecución).


Aunque Win MySQL Admin resultó útil para crear un archivo .ini básico, no es necesario seguir utilizando el programa una vez que el servicio MySQL está activo. Win MySQL Admin es una aplicación antigua y no actualizada, que además lanza a veces errores de Windows aleatorios.


Pero no hay problema: basta con cerrar la ventana de ese gestor de MySQL, y usar la aplicación phpMyAdmin que viene instalada por defecto dentro de XAMPP.


La prueba final consiste en abrir phpMyAdmin para comprobar el estado activo de las bases de datos MySQL.


Puede accederse a phpMyAdmin a través del menú principal del servidor Apache instalado con XAMPP. Es necesario arrancar el servidor Apache, abrir la página principal del servidor usando el navegador web (basta con escribir "localchost" en la barra de direcciones y con la configuración por defecto de XAMPP) y pulsar en el enlace a phpMyAdmin para comprobar que las bases de datos MySQL han pasado a estado activo.


Espero que estos trucos sean de ayuda para activar sus bases de datos MySQL en XAMPP, de modo que pueda aprovechar las ventajas que este paquete ofrece para programar y probar en local MySQL y PHP.

11 comments:

Geimerú dijo...

Hola Buenas tardes.. Espero puedas responder!!!
Mi problema es que soy un poco ignorante usando estas aplicaciones y aun no puedo crear la base de datos con MySQL, porque no se como =S al menos que la tenga que crear aparte y la llame desde KUMBIA :P Ayudame porfavor, como hago para crear una base de datos?

E.S.V. dijo...

Si no conoces el código para crear bases de datos (que se ejecuta como script y cuya referencia completa viene en las instrucciones de MySQL) te recomiendo que instales phpMyAdmin, con el que la opción de creación es intuitiva y visual.

Geimerú dijo...

sii gracias!!! lo estoy haciendo y ps es que nunca he trabajado con MySQL pero con el codigo SQL estoy haciendo todo.. Ahora la cuestion es otra: jejeje, instale el paquete Xampp y KUMBIA, pues y ya cree la base de datos, lo que voy a probar es si la llamo directamente con el codigo PHP o tengo que enlazarla? si me puedes ayudar no perdere mucho tiempo =) gracias y disculpa la molestia!

E.S.V. dijo...

Pues la verdad es que como nunca he utilizado KUMBIA no sé cómo funcionará exactamente ese framework.
En teoría, siempre será posible acceder a ella desde el código PHP.

Enrique Veloz dijo...

El problema que me pasa a mi es que no se queda fija la pertanita verde de activacion de MYSQL, he usado por mas de un ano y medio este programa (xaamp) y hasta ahora todo ha salido bien. usualmente yo empiezo a trabajar las paginas de mis clientes localmente y luego que se las muestro y me aprueban las subo a internet.
el problema ahora es que al no funcionar MYSQL no me deja ver ninguna de las paginas que ya he trabajado en mi computador. Quisiera saber si hay una manera de fisicamente obtener las bases de datos y las datas de todas mis paginas en mi computador, reinstalar el XAMPP y volver a compiarlas.... Funcionaria esto?? no quiero echar a perder todo el trabajo....

E.S.V. dijo...

Hola, Enrique.

Lo cierto es que siempre he podido contar con backups de las bases de datos en formato ".sql", así que nunca he probado a restaurar una base de datos a partir de los archivos que MySQL guarda en bruto.

Pero las buenas noticias son que, en principio, sí que sería posible recuperar los archivos. La ubicación en que se guardan dichos archivos viene especificada dentro del archivo de configuración de MySQL, my.ini en la variable datadir.

En Xampp, la ubicación exacta de estos archivos con las bases de datos MySQL debería estar en xampp/mysql/data

Cada base de datos se guarda en una carpeta aparte, y cada tabla contenida se guarda en archivos de extensiones .frm y .MYD. De manera que copiando estos directorios deberías tener una copia de seguridad de las bases de datos a las que no podías acceder.

No estoy seguro de cómo se haría para restaurar la base de datos a partir de estos archivos básicos. Quizá copiándolos en una nueva instalación de MySQL o Xampp bastaría. Aunque también puede que funcione usar el comando Restore Table de MySQL con los archivos .frm y .MYD que encontrarás en el directorio de datos.

Enrique Veloz dijo...

Bueno!!
Lo primero es que es exactamente como dices... Ahí mismo estan los archivos... Cada carpeta con sus bases de datos correspondientes. Tambien tengo la data salvada! El inmconveniente ahora es que ni siquiera reinstalando el Xampp quiere correr el MYSQL... Por tanto no puedo ver ninguna pagina de las que he creado en my PC, asi tampoco puedo ver PHPMYADMIN, me da un error de conexión con la base de datos.
Al no poder ver phpmyadmin no puedo exportar las bases de datos. El Xampp simplemente no quiere nada. Cambie hasta los permisos de usuarios, reinstale Xampp y nada... Intentare copiar Xampp en otro computador y agregar la data y base de datos!

Muchisimas gracias por todo!

Si sabes como remediar este asunto del MYSQL en el xampp dejame saber por favor

E.S.V. dijo...

De nada, Enrique. Me alegro de que fuera correcto.

Espero que poder reinstalarlo, aunque sea en otro ordenador distinto con un Xampp nuevo, no sea complicado.

En cualquier caso, lo importante es que los datos no se han perdido, puesto que siguen ahí.

Un Xampp con un MySQL que deje de funcionar de repente no es demasiado habitual. Si no has instalado ningún programa recientemente que pudiera interferir (tipo antivirus o similar) no se me ocurre ninguna causa evidente.

¿Has mirado en el visor de sucesos a ver si hay algún mensaje de error concreto cuando intentas activar MySQL?? (Mi PC > Clic derecho > Administrar > Herramientas del sistema > Visor de sucesos > Sistema)

Santiago Ortiz dijo...

Hola espero que puedas responder a mi inquietud.. Tengo ese problema del que resuelves pero yo estoy utilizando la ultima version del xampp 1.8.1 y da la casualidad que no hay el winmysqladmin.exe hay el mysqladmin.exe pero no realiza la misma función.. Lo que necesito es saber si hay alguna forma manual de hacer lo que hace el archivo winmysqladmin.exe o alguna otra forma.. Muchas gracias de antemano..

Alberto Leal dijo...

Santiago ortiz solucionaste el problema?? Porque yo tenia el mismo problema, MySql no iniciaba como servicio, lo que hice fue:
1- Ir a Panel de Control, ver si mi servicio "mysql" estaba en automatico, lo configure a manual y luego lo deje como estaba.
2- Inicie en xampp/mysql/bin/sqladmin.exe como administrador
3- Reinicie y quedo funcionando, si tenes alguna duda consultame

franz lopez dijo...

la solución de alberto leal funciona.a mi me pasaba que no arrancaba el mysql y ahora no falla.me estaba volviendo loco.gracias alberto