72 votes

Moteur de stockage inconnu/non pris en charge : InnoDB | MySQL Ubuntu

J'ai récemment effectué une mise à niveau de la précédente Ubuntu LTS vers Precise et maintenant mysql refuse de démarrer. Il se plaint de ce qui suit lorsque j'essaie de le démarrer :

$ sudo service mysql restart
stop: Unknown instance:
start: Job failed to start

Et cela apparaît dans "/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

J'ai vérifié les permissions sur tous les répertoires mysql pour m'assurer qu'il en avait la propriété et j'ai aussi renommé les ib_logs précédents pour qu'il puisse les refaire. Je n'arrive à rien avec ce problème pour le moment, après avoir consulté les résultats de Google pendant 2 heures.

74voto

takien Points 176

Après avoir vérifié les journaux, j'ai trouvé l'erreur suivante :

[ERROR] Unknown/unsupported storage engine: InnoDB

J'ai supprimé ces fichiers :

rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile1 

à l'adresse /var/lib/mysql

Cela a résolu mon problème après le redémarrage.

22voto

Rosamunda Points 179

Si vous avez vraiment besoin skip-innodb (cas d'utilisation : faible encombrement mémoire), alors bien sûr vous n'avez pas besoin de le commenter. Cependant, si InnoDB est le moteur de stockage par défaut, le serveur ne démarrera pas tant que vous ne lui aurez pas indiqué quel moteur de stockage utiliser à la place, par ex. default-storage-engine=myisam pour MyISAM.

Alors, essayez ceci :

$ sudo -u mysql mysqld --skip-innodb --default-storage-engine=myisam

11voto

Matthew Franglen Points 1686

Si vous utilisez MySQL 5.6+ et que vous voulez désactiver InnoDB, n'oubliez pas " --default-tmp-storage "ou cela ne fonctionnera pas :

Pour désactiver InnoDB, utilisez --innodb=OFF ou --skip-innodb. Dans ce cas, Dans ce cas, comme le moteur de stockage par défaut est InnoDB serveur ne démarrera pas, à moins que vous n'utilisiez également --default-tmp-storage-engine pour définir un autre moteur par défaut pour les tables permanentes et TEMPORAIRES.

http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#option_mysqld_ignore-builtin-innodb

Vous pouvez ajouter ceci à votre my.cnf :

[mysqld] 
innodb=OFF 
ignore-builtin-innodb 
skip-innodb
default-storage-engine=myisam 
default-tmp-storage-engine=myisam

juste pour être sûr que ça va marcher.

10voto

Wall Venker Points 11

Vérifiez votre journal d'erreurs mysql.

tail -100 /var/log/mysql/error.log

Si votre journal indique (comme le mien) :

InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
\[ERROR\] InnoDB: Cannot allocate memory for the buffer pool

Vous n'avez pas assez de mémoire pour utiliser la taille de tampon par défaut de 128M.

Modifier le fichier de configuration /etc/mysql/my.cnf ajout d'une ligne pour spécifier une taille innodb_buffer_pool_size plus petite.

# make the buffer pool smaller than 128M since we only have 1 GB of total RAM
innodb_buffer_pool_size = 16M

Sauvegarder le fichier de configuration, et démarrer mysql

sudo service mysql start

0 votes

C'est tout à fait exact. Mais il peut aussi s'agir de processus suspendus du serveur web ou de quelque chose qui consomme la RAM, vérifiez cela aussi.

0voto

Ben Racicot Points 124

J'ai obtenu cette erreur lorsque j'ai supprimé l'emplacement que j'utilise pour tmpdir . Si vous avez récemment changé votre tmpdir vous pouvez vérifier qu'il s'agit d'un emplacement valide et accessible en écriture.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X