XAMPP - MySQL se apaga inesperadamente


110

Cuando abro XAMPP y hago clic en el botón Iniciar MySQL y me da un error. Lo había empezado justo antes, pero ahora no funciona.

12:19:12 PM [mysql] Intentando iniciar la aplicación MySQL ...
12:19:12 PM [mysql] Cambio de estado detectado: en ejecución
12:19:13 PM [mysql] Cambio de estado detectado: detenido
12:19:13 PM [mysql] Error: MySQL se cerró inesperadamente.
12:19:13 PM [mysql] Esto puede deberse a un puerto bloqueado, dependencias faltantes,
12:19:13 PM [mysql] privilegios incorrectos, un bloqueo o un cierre por otro método
12:19:13 PM [mysql ] Presione el botón Registros para ver los registros de errores y revise
12:19:13 PM [mysql] el Visor de eventos de Windows para obtener más pistas
12:19:13 PM [mysql] Si necesita más ayuda, copie y publique esto
12:19: 13 PM [mysql] ventana de registro completa en los foros

Aquí está el contenido del registro de errores:

2013-08-02 12:19:12 4536 [Nota] El complemento 'FEDERADO' está deshabilitado.
2013-08-02 12:19:12 f64 InnoDB: Advertencia: el uso de innodb_additional_mem_pool_size está DEPRECADO. Esta opción puede eliminarse en futuras versiones, junto con la opción innodb_use_sys_malloc y con el asignador de memoria interna de InnoDB.
2013-08-02 12:19:12 4536 [Nota] InnoDB: el montón de memoria InnoDB está deshabilitado
2013-08-02 12:19:12 4536 [Nota] InnoDB: Mutexes y rw_locks usan funciones entrelazadas de Windows
2013-08-02 12:19:12 4536 [Nota] InnoDB: Las tablas comprimidas usan zlib 1.2.3
2013-08-02 12:19:12 4536 [Nota] InnoDB: No usa las instrucciones de CPU crc32
2013-08-02 12:19:12 4536 [Nota] InnoDB: inicializando grupo de búfer, tamaño = 16,0 M
2013-08-02 12:19:12 4536 [Nota] InnoDB: Inicialización completa del grupo de búferes
2013-08-02 12:19:12 4536 [Nota] InnoDB: El formato de archivo más alto admitido es Barracuda.
2013-08-02 12:19:12 4536 [Nota] InnoDB: ¡Los números de secuencia de registro 0 y 0 en los archivos ibdata no coinciden con el número de secuencia de registro 1616798 en ib_logfiles!
2013-08-02 12:19:12 4536 [Nota] InnoDB: ¡La base de datos no se cerró normalmente!
2013-08-02 12:19:12 4536 [Nota] InnoDB: Iniciando la recuperación de fallas.
2013-08-02 12:19:12 4536 [Nota] InnoDB: Leyendo información del espacio de tabla de los archivos .ibd ...

El mensaje de error más importante está aquí:

2013-08-02 12:19:12 4536 [ERROR] InnoDB:
Intentó abrir un espacio de tabla previamente abierto.
El espacio de tabla anterior mysql / innodb_table_stats usa el ID de espacio: 1 en la ruta de archivo:. \ Mysql \ innodb_table_stats.ibd .
No se puede abrir el espacio de tabla xat / payments que usa el ID de espacio: 1 en la ruta de archivo:. \ Xat \ payments.ibd

El resto del registro:

InnoDB: Error: no se pudo abrir el archivo de espacio de tabla de una sola tabla. \ Xat \ payments.ibd
InnoDB: No continuamos con la recuperación de fallas , porque la tabla puede volverse
InnoDB: corrupta si no podemos aplicarle los registros del log de InnoDB .
InnoDB: Para solucionar el problema e iniciar mysqld:
InnoDB: 1) Si hay un problema de permisos en el archivo y mysqld no puede
InnoDB: abra el archivo, debe modificar los permisos.
InnoDB: 2) Si la tabla no es necesaria, o puede restaurarla desde una copia de seguridad,
InnoDB: entonces puede eliminar el archivo .ibd, e InnoDB hará una
recuperación normal de InnoDB: falla e ignorará esa tabla.
InnoDB: 3) Si el sistema de archivos o el disco está roto y no puede eliminar
InnoDB: el archivo .ibd, puede configurar innodb_force_recovery> 0 en my.cnf
InnoDB: y forzar a InnoDB a continuar la recuperación de fallas aquí.

¿Cuál es la causa de estos errores y cómo puedo subsanarlos?

Respuestas:


173

IMPORTANTE Eliminar este archivo puede inutilizar cualquier dato MySQL existente. Utilizar con precaución

Oye, acabo de hacer esto y funcionó:

  1. salir del servidor Xampp
  2. ve a tu C:\xampp\mysql\datadirectorio
  3. eliminar el ibdata1archivo
  4. reiniciar el servidor xampp

Deberia de funcionar


26
Esto funciona y probablemente debería marcarse como la respuesta correcta. Sin embargo, cambie el nombre del archivo a ibdata1.bak en lugar de eliminarlo. Solo para salvarse.
Lorenz Lo Sauer

23
Esto, por supuesto, destruirá todos los datos que se almacenaron en ese archivo (todas las tablas InnoDB que se crearon antes de configurarlas innodb_file_per_tablecomo habilitadas). Los métodos sugeridos en el mensaje de registro me parecen superiores.
Tgr

16
También tuve que eliminarlo ib_logfile0y ib_logfile1hacerlo funcionar
Allan Macmillan

11
¡Ay! Volar ibdata1es equivalente a perder todos sus datos (¡o al menos todos los que son ENGINE=Innodb!
Rick James

18
Lo más inexplicable imprudente upvoted se puede hacer
user10089632

215

¡Detente ahí! ¡NO elimine el ibdata1archivo!

Eliminar este archivo es como jugar a una ruleta rusa con sus bases de datos, podría funcionar y restablecer todo, pero también, probablemente podría dañar todas las bases de datos que tiene. En su lugar, primero intente usar la carpeta de respaldo de MySQL que se incluye con XAMPP. Entonces haz lo siguiente:

  1. Cambie el nombre de la carpeta mysql/dataa mysql/data_old(puede usar cualquier nombre)
  2. Crear una nueva carpeta mysql/data
  3. Copie el contenido que reside en mysql/backupla nueva mysql/datacarpeta
  4. Copiar todas las carpetas de base de datos que se encuentran en mysql/data_olda mysql/data (omitiendo el MySQL, performance_schema y carpetas desde phpmyadmin data_old)
  5. Finalmente copie el ibdata1archivo mysql/data_oldy reemplácelo dentro de la mysql/datacarpeta
  6. Inicie MySQL desde el panel de control de XAMPP

¡Y voilá!


17
Esta es la mejor respuesta, no le pide que elimine ningún archivo o carpeta y, lo que es más importante, funciona.
gegobyte

14
Esta es la mejor respuesta
Kevin E. Ogbonna

4
He recurrido a esta respuesta tantas veces que incluso escribí un script de PowerShell para automatizar el proceso: gist.github.com/josemmo/24e35f2b4984a4370ce2c164f5956437
josemmo

6
esta debería ser la respuesta principal
cero8

3
Según @josemmo gist, es importante tener en cuenta que se debe excluir mysql, performance_schema, phpmyadmin al copiar directorios en mysql / data
claw68

43
  1. Vaya a mysql / data /
  2. Elimine todos los archivos aleatorios (excepto las carpetas de la base de datos real)
  3. Reinicie Apache y MySQL .

Debería arreglarlo.


10
Borró todos mis datos. Hubo muchos datos.
Paras

11
Confirmo que eliminar archivos inutilizará todas las bases de datos. Los archivos de tabla están ahí pero no se pueden mostrar.
Adrian P.

21

Si las respuestas mencionadas anteriormente no funcionan, puede intentar eliminar todos los archivos en los datos, excepto la carpeta

Ir a: C: \ xampp \ mysql \ data

ingrese la descripción de la imagen aquí

Después de eso: Goto: C: \ xampp \ mysql \ bin

luego abra con el bloc de notas my.ini , se ve así.

ingrese la descripción de la imagen aquí

Luego elimine o ponga en comentario el puerto 3306 y cámbielo a 8111 luego ejecute xamp con el administrador y su funcionamiento.


Te Amo @Matthew Magante. Ha resuelto mi problema al que me enfrenté durante el último año. Muchas gracias.
Kashif Iftikhar

Ahora, no recibo ese error en xampp, pero todavía phpmyadmin no funciona
Sarvesh Tiwari

15

Cuando estás no correr XAMPP como administrador, el cierre de MySQL con frecuencia causa la corrupción que significa que tiene que reparar o eliminar sus tablas. Para evitar esto, debe ejecutar XAMPP como administrador o utilizar el método de símbolo del sistema adecuado para cerrar MySQL.

Puede eliminar ibdata1como sugiere Kratos, pero esto puede dejarlo con una base de datos rota ya que otras partes de su base de datos todavía están en la /mysql/data/carpeta. En mi caso, estos datos residuales me impidieron instalar WordPress con éxito.

Una forma más limpia de deshacer el daño es revertir toda la /mysql/data/carpeta. Windows tiene control de versiones de carpeta incorporado: haga clic con el botón derecho /mysql/data/y seleccione Restore previous versions. A continuación, puede eliminar el contenido actual de la carpeta y reemplazarlo con el contenido de la versión anterior.

Anexo: para asegurarse de que no se olvide de ejecutar XAMPP como administrador, puede hacer clic con el botón derecho en el acceso directo de XAMPP, ir a Properties, luego Advanced, y finalmente marcar Run as administrator.


1
Esto debe aceptarse como respuesta correcta. Si elimina ibdata1, habrá toneladas de tablas huérfanas.
sean

Gracias, solucionaste mi problema después de probar un montón de cosas diferentes.
user3089840

también solucionó el problema para mí
Gaz Smith

Bonita explicación: D Gracias.
logbasex

La opción 'Restaurar versiones anteriores' solo funciona si crea regularmente Puntos de restauración en Windows. :(
nockieboy

15

Mi Xampp MySQL funcionó de la siguiente manera:

01.Go to mysql/data/ directory
02. delete the ibdata1 & ib_logfile*(ib_logfile0,ib_logfile1,ib_logfile101) file
03. restart xampp server

esta es la forma mas efectiva para mi !!
Youssef Boudaya

14

Agregue la siguiente línea debajo de la [mysqld]sección en el archivo de configuración de mysql (my.ini) y luego reinicie el servidor web apache y el servicio mysql.

[mysqld]
innodb_force_recovery = 4

7
Lea acerca de lo que está haciendo, antes de hacerlo: dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html
marcovtwout

Muchas gracias, realmente me ayudó mucho.
Lohn Claidon

5
es mejor comenzar con el valor 1 e incrementarlo cada vez que no funcionó. Los valores 1-3 se consideran salvados. ¡4-6 pueden dañar los datos!
CoR

Eso me ayudó. Como se señaló, primero use los valores 1-3. 2 funcionó en mí. Tuve que volcar toda mi base de datos, restablecer los datos de mysql usando la carpeta de respaldo y luego importar los volcados. Esto es útil si desea conservar sus datos
claw68

13

Recibí el mismo tipo de error en mi C:\xampp\mysql\data\mysql_error.logal intentar iniciar mysql.

2013-08-05 01:20:32 6780 [ERROR] InnoDB: Attempted to open a previously 
  opened tablespace. Previous tablespace mysql/slave_relay_log_info uses 
  space ID: 3 at filepath: .\mysql\slave_relay_log_info.ibd. Cannot open  
  tablespace test_database/test_table which uses space ID: 3 at filepath:  
  .\test_database\test_table.ibd

Deberá leer el error detenidamente. Esto dice que test_databaseestá evitando que mysql se inicie.

Podría destruir la base de datos ofensiva, estos pasos solucionan el problema:

  1. Asegúrese de que mysql y xampp estén completamente cerrados.
  2. Vaya a su directorio donde está instalado mysql, el mío es: C:\xampp\mysql\data
  3. Debería ver una carpeta con el nombre de una base de datos que creó. la mía era test_database.
  4. Cree una nueva carpeta en otro lugar llamado C:\xampp\mysql\data\mysql\backuptablespace
  5. Arrastre y suelte (no elimine) la carpeta de la tabla de la base de datos infractora en el directorio de respaldo.
  6. Intente iniciar mysql nuevamente. Para mí, comenzó en 1 segundo como se esperaba.

Si no funciona, vuelva a colocar el archivo donde comenzó y volverá a donde comenzó.

Si no desea eliminar la base de datos y no tiene copias de seguridad:

Si no tiene copias de seguridad de los datos de la tabla y mysql no se inicia porque algo está dañado, tendrá que usar el proceso de eliminación para adivinar y verificar exactamente qué hizo que lo corrompió. Sigue estos pasos:

  1. Haga un clon de todo C:\xampp\y guárdelo en un lugar seguro para que pueda volver al punto de partida.
  2. Utilice un enfoque de "búsqueda binaria" para tratar de localizar el elemento dañado en la base de datos mysql. Puede ser un archivo, una tabla, una base de datos, un usuario o cualquier cosa.
  3. Elimine toda la base de datos y vea si eso permite que mysql se inicie. Si es así, vuelva a colocar la base de datos e intente eliminar algunas de las tablas. Si no es así, intente sacar algo más hasta que comience.
  4. Intente eliminar estos archivos de C:\xampp\mysql\data\mysql: db.frm db.MRD db.MYI db.opt user.frm user.MYD user.MYI

  5. Cuando consiga que mysql se inicie, intente volver a colocar las cosas hasta que encuentre la única cosa que agregue que evita que se inicie. Una ventaja de esto es que aprende cómo funciona mysql bajo el capó.

Opción nuclear:

Algo que hiciste arruinó el servidor mysql. Una desinstalación y reinstalación de XAMPP debería deshacer la corrupción.


7

También enfrenté este problema y así es como lo resolví.
1. Asegúrese de que xampp no ​​esté en el subdirectorio. Por ejemplo, debería ser C: \ xampp
2. Es posible que deba ejecutar como administrador para ejecutar la aplicación.

¡Espero que esto funcione!


4

Aquí esta lo que hice. Reinicié mi computadora. A continuación, ejecuto services.msc. Detuve el servicio MySQL y luego lo reinicié. Se reinició el servidor Xampp.


¡Esta no es una respuesta válida!
abhiarora

Respuesta no válida
Soumyajit Dutta

4

en mi caso hice los siguientes pasos y funcionó:

  1. En el panel de control de Xampp, haga clic en el botón "Servicios" de la barra de herramientas del lado derecho

  2. Luego busque "MySQL" en la Lista de servicios

  3. Haga clic en él y desde el lado izquierdo del panel haga clic en "detener"

  4. Regrese en el panel de control de Xampp y haga clic en iniciar.


1
Gracias, ninguna de las otras opciones funcionó para mí, esta sí. Muy agradecido
user3808307

@ user3808307 Me alegro de que te haya ayudado :)
Sobhan

muchas gracias ! trabajó para mí
Simon

3

Ninguna solución anterior funcionó para mí. luego lo hice a continuación:

Eliminé todos los archivos dentro del directorio C: \ xampp \ mysql \ data \ excepto las carpetas en este directorio. Funcionó perfectamente bien, pero mis bases de datos anteriores no funcionan ahora. Haga lo anterior si no le importa, eliminará todas sus bases de datos anteriores en phpmyadmin.


3

Estaba enfrentando el mismo problema y ninguna de las soluciones mencionadas anteriormente me ayudó. Fui al archivo de configuración de mysql (my.ini) y cambié el número de puerto en [mysqld]. Por defecto, mysql se ejecuta en el puerto 3306.

port= 3306

lo cambié a,

port= 8111

Luego ejecútelo como Administrador Finalmente esto funcionó para mí.


3
  1. mover xampp/mysql/backuparchivos axampp/mysql/data
  2. EJECUTAR XAMPPcomo Administrator(asegúrese de que mysql esté instalado, puede ver una marca verde si está instalado) Elemento de lista

¡Espero eso ayude!


2

Chicos, solo asegúrese de no tener MySql Server instalado. Porque tengo el servidor MySql preinstalado y cuando inicio mysql desde el panel de control de xampp se producen algunos conflictos de puertos y no funciona. ASÍ QUE antes de iniciar mysql desde el panel de control de xampp, asegúrese de que el servidor mysql no esté instalado. Utilizo .net, así que instalé el servidor mysql en el pasado. Desinstalarlo resolvió mi problema ...


2

Resolví el problema al finalizar la tarea de mysqlid en el Administrador de tareas.ingrese la descripción de la imagen aquí


Gracias, me ayudó. Esa idea de eliminar ib1 me creó nuevos problemas que resolver.
Skotee


2

Lo que funcionó para mí es:

  1. Primero abro Logspor MySqladentro XAMPP panel.
  2. Al final dice que está ejecutando otra instancia de mysqlid en el puerto 3306
  3. Abrí mi task manager(Ctrl+Shift+Esc)luego buscar mysqlidy End the task.

1

Config-> Apache-> Abra httpd.conf. busque Escuchar o 80, actualice el puerto de escucha a 8081, guarde y reinicie el servidor. Ah, y apaga Skype si lo tienes.


2
Sí, eso lo solucionó. Juro que lo reinstalé antes de publicar eso, pero supongo que no. Gracias :)
Austin

1

En mi caso en el que sincronicé mis datos de mysql y htdocs con Dropbox, solo necesitaba eliminar los archivos en conflicto en la carpeta y subcarpetas mysql / data. Los archivos en conflicto se pueden identificar por sus nombres, Dropbox te lo dirá. Me ha resuelto el problema.


1

Asegúrese de que la hora del sistema sea correcta. El mío se fijó en el año 2040 de alguna manera, corrigiendo la fecha resolvió el problema.


1

Para mí, salí de Skype, que ocupaba el puerto 80, luego Apache funcionó felizmente en el puerto 80, luego ejecuté Skype y esta vez eligió otro puerto.


1

si está utilizando MariaDB, puede probar esto:

  1. Vaya a mysql / data /
  2. Cambiar el nombre de aria_log_control a aria_log_control_old
  3. Reinicie "Mysql"

1

comento esta declaración en mysql / bin / my.ini

'innodb_additional_mem_pool_size=2M'

y soluciona mi problema. que todos ustedes


No tengo esa línea en absoluto
Vipul Hadiya

¿Estás en Windows? ¿Cuál es tu versión de xampp?
Boston Kenne

Sí, gana 10 con XAMPP 3.2.4
Vipul Hadiya

¿tuvo acceso a su archivo mysql / bin / my.ini?
Boston Kenne

gist.github.com/susanBuck/52f8a8508d94834332b1d565fb3a0e00 vea este enlace y verifique la ubicación de su archivo que se supone que está en C: \ xampp \ mysql \ bin \ my.ini , busque la línea innodb_additional_mem_pool_size y coméntelo.
Boston Kenne

1

Esto significa que ya tiene una base de datos MySQL ejecutándose en el puerto 3306.

En el panel de control de XAMPP, presione el botón 'Config' y luego presione 'my.ini'. Después de esto, presione Ctrl-F y busque '3306'. Reemplace cualquier '3306' que encuentre con un número de puerto diferente de su elección (puede elegir 3307 o 3308; elegí 2811 y funcionó).

Después de haber reemplazado todas las ubicaciones donde está escrito '3306', guarde el archivo y presione 'Iniciar' en el panel de control nuevamente.


1

Vaya al administrador de tareas y busque mysqld y haga clic derecho y seleccione FINALIZAR TAREA y actualice XAMPP


1

Para mí, el problema fue:

Solía ​​usar hibernatemi PC en lugar de apagarlo debido a la escala del proyecto. Tuve la pereza de volver a abrir todos los programas.

Antes de intentar cualquier otra cosa, le recomiendo que haga las siguientes cosas simples. De lo contrario, arruinará su servidor MySQL.

  1. Abra su administrador de tareas y finalice el proceso XAMPP.
  2. Vuelva a ejecutar la aplicación XAMPP como administrador.

Si no funciona,

  1. Guarde todos los programas no guardados y reinicie la PC.
  2. Ejecute XAMMP como administrador.

Además, asegúrese de verificar 3306& 5040ports. Estos dos puertos son necesarios para ejecutar MySQL en la configuración predeterminada.

Consulte la respuesta de @Ryan Williams para averiguar por qué es bueno ejecutar XAMPP como administrador.


1

Literalmente eliminé todos los archivos de c: \ xampp \ mysql \ data \ excepto my.ini y funciona


Seguro que funciona, pero algunas tablas no existen después de esta operación. Mi opinión copia de seguridad de la carpeta de datos en un archivo zip u otra ruta. luego intente esta operación. Después de completar la restauración ibdata1 e ib_logfile0 e ib_logfile1 ahora funciona y todas las tablas restauradas Acciones: Servidor = Aplicación Xampp = Voyager admin (Laravel)
Nijat Aliyev

1

Resolví un error similar de MySQL y creo que esta respuesta te ayudará a corregir el mismo tipo de error de la base de datos MySQL. Error de MySQL en el panel de control de XAMPP

Solución:

  • Vaya al directorio "datos" en la base de datos mysql.
  • Instalé XAMPP en la unidad D: en mi computadora y la ubicación del directorio de "datos" de mysql de mi computadora era "D: \ xampp \ mysql \ data \". Puede tener una ubicación diferente.

Realizar copia de seguridad de la carpeta de "datos" de MySQL

  • En primer lugar, debe crear una copia de seguridad de la carpeta "datos" utilizando cualquier software de compresión.

  • Dé un nombre como "data_backup.zip" o cualquier tipo de compresión que desee.

  • Utilicé el software de compresión winrar para comprimir y hacer una copia de seguridad de la carpeta "datos" de mysql.

Cambiar el nombre de la carpeta "datos"

  • Cambie el nombre de la carpeta "datos" a "data-oldfiles". Esto es muy importante para cambiar el nombre del directorio de datos a cualquier nombre de directorio nuevo.

Crea una nueva carpeta de "datos"

  • Cree una nueva carpeta y asigne el nombre de la carpeta como "datos"
  • Para resolver el problema, necesitamos crear un nuevo directorio de "datos" en la base de datos mysql.

Copie el contenido de la carpeta "copia de seguridad"

  • Vaya a la carpeta "copia de seguridad" y copie todos los archivos.
  • Pegue los archivos de la carpeta de respaldo a la carpeta de datos
  • Ahora inicie la base de datos MySQL desde XAMPP.
  • Su base de datos MySQL se iniciará correctamente sin mostrar ningún error.

Transfiera todas las bases de datos de proyectos MySQL, archivos de datos y archivos de registro

  • Si tiene muchas bases de datos que se utilizaron para varios proyectos, entonces debe transferir toda la base de datos de la carpeta "data-oldfiles" a la carpeta "data".

  • Copie todas las bases de datos de los archivos antiguos y péguelas en la carpeta de datos.

  • Ahora debe copiar el archivo de datos “ibdata1” y todos los archivos de registro “ib_logfile0, ib_logfile1” de la carpeta de archivos antiguos a la carpeta de datos.

  • Si tiene muchos id_logiles, cópielos todos.

  • Ahora inicie MySQL desde XAMPP.

  • Vaya a phpMyAdmin para verificar que todas las bases de datos estén disponibles y funcionando.

  • Ahora inicie cualquier proyecto de sitio web desde localhost para verificar la base de datos MySQL.

El problema esta resuelto !!

Error de MySQL resuelto en XAMPP

  • Ahora verá que el problema está resuelto y el mensaje de error "Error: MySQL se apagó inesperadamente". no se mostrará de nuevo.
  • Si tiene alguna pregunta sobre este tema, no dude en hacer cualquier pregunta en la sección de comentarios.

Puede leer los tutoriales detallados en el siguiente enlace: Error: MySQL se apagó inesperadamente - Solución en 5 sencillos pasos

También puede ver tutoriales en video para resolver el problema:

[Resuelto] Error: MySQL se apaga inesperadamente


0

Para esto, debe hacer clic en la opción x en Servicios de módulos y hacer que los servicios MYSQL estén instalados. Luego inicie los servicios. Aqui tienes.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.