Recientemente actualicé desde el anterior LTS Ubuntu a Precise y ahora mysql se niega a comenzar. Se queja de lo siguiente cuando intento iniciarlo:
╰$ sudo service mysql restart
stop: Unknown instance:
start: Job failed to start
Y esto se muestra en "/var/log/mysql/error.log":
120415 23:01:09 [Note] Plugin 'InnoDB' is disabled.
120415 23:01:09 [Note] Plugin 'FEDERATED' is disabled.
120415 23:01:09 [ERROR] Unknown/unsupported storage engine: InnoDB
120415 23:01:09 [ERROR] Aborting
120415 23:01:09 [Note] /usr/sbin/mysqld: Shutdown complete
Verifiqué los permisos en todos los directorios de mysql para asegurarme de que tuviera la propiedad y también cambié el nombre de los ib_logs previos para poder rehacerlos. No estoy llegando a ningún lado con este problema en este momento, después de mirar los resultados de Google durante 2 horas.
Respuestas:
Después de verificar los registros, encontré el siguiente error:
Eliminé estos archivos:
a
/var/lib/mysql
Esto resolvió mi problema después de reiniciar.
fuente
rm
comando se usa para eliminar archivos en lugar de cambiarles el nombre hasta donde yo sé ...ibdata
archivo contiene los datos (a menos que tenga un archivo por tabla). Los archivos ib_logfile son los registros de reproducción que contienen los datos de las transacciones que alteran la base de datos que pueden haber estado en proceso cuando / si la base de datos se bloqueó. Si pudo apagar el servidor con éxito, eliminar estos archivos de registro no le hará daño. Si se estrelló, entonces los necesitas. Pero esta es una respuesta válida. Si su archivo my.cnf cambia la opción innodb_log_file_size y ya no coincide con esos dos archivos, recibirá el mensaje de error que indica el OP. Eliminar / mover para que se puedan hacer nuevos lo arregla.mv ib_logfile0 ib_logfile0.bak && mv ib_logfile1 ib_logfile1.bak
.Si realmente lo necesita
skip-innodb
(caso de uso: huella de memoria baja), entonces, por supuesto, no tiene que comentarlo. Sin embargo, si InnoDB es el motor de almacenamiento predeterminado, el servidor no se iniciará hasta que usted le indique qué motor de almacenamiento debe utilizar, por ejemplo,default-storage-engine=myisam
para MyISAM.Entonces, prueba esto:
fuente
default-storage-engine=myisam
en el archivo /etc/my.cnf debajo[mysqld]
. Eso hizo el truco. ThxSi está utilizando MySQL 5.6+ y desea deshabilitar InnoDB, no olvide " --default-tmp-storage " o no funcionará:
http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#option_mysqld_ignore-builtin-innodb
Puede agregar esto a su my.cnf:
solo para asegurarme de que funcione.
fuente
default-storage-engine
ydefault-tmp-storage-engine
, gracias.Verifique su registro de errores de mysql.
Si su registro dice (como lo hizo el mío):
No tiene suficiente memoria para usar el tamaño de búfer predeterminado de 128M
Edite el archivo de configuración /etc/mysql/my.cnf agregando una línea para especificar un innodb_buffer_pool_size más pequeño.
Guarde el archivo de configuración e inicie mysql
fuente
Prueba 2 cosas más. 1. Reduzca el tamaño de la agrupación de almacenamiento intermedio innodb. 2. Edite el script inicial de mysql y agregue la opción --innodb.
También me pregunto si su paquete tiene errores. ¿Podrías probar una versión menor diferente?
Además, supongo que su servidor mysql también se actualizó. Tal vez esa versión está rota? Preciso aún no es definitivo.
fuente
Recibí este error cuando eliminé la ubicación que uso
tmpdir
. Si ha cambiado recientementetmpdir
, es posible que desee verificar que sea una ubicación válida y que se pueda escribir.fuente