web-dev-qa-db-fra.com

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

J'ai récemment mis à niveau le précédent LTS Ubuntu 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 autorisations sur tous les répertoires mysql pour m'assurer qu'il en était le propriétaire et j'ai également renommé les ib_logs précédents afin qu'il puisse les refaire. Je ne parviens à rien avec ce problème en ce moment, après avoir consulté les résultats de Google pendant 2 heures.

45
Garrett

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 

à /var/lib/mysql

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

35
Vinay

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

Alors, essayez ceci:

$ Sudo -u mysql mysqld --skip-innodb --default-storage-engine=myisam
23
Andy Mikhaylenko

Si vous utilisez MySQL 5.6+ et que vous souhaitez désactiver InnoDB, n'oubliez pas " - default-tmp-storage " ou il ne le fera pas travail:

Pour désactiver InnoDB, utilisez --innodb = OFF ou --skip-innodb. Dans ce cas, étant donné que le moteur de stockage par défaut est InnoDB, le serveur ne démarre pas, sauf si vous utilisez également --default-storage-engine et --default-tmp-storage-engine pour définir la valeur par défaut sur un autre moteur à la fois permanent et Tables TEMPORAIRES.

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

Vous pouvez l'ajouter à 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.

12
Juan

Vérifiez votre journal des erreurs mysql.

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

Si votre journal indique (comme le mien):

InnoDB: Initialisation du pool de tampons, taille = 128,0 M 
 InnoDB: mmap (137363456 octets) a échoué; errno 12 
 [ERREUR] InnoDB: impossible d'allouer de la mémoire pour le pool de tampons

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

Modifiez le fichier de configuration / etc/mysql/my.cnf en ajoutant une ligne pour spécifier une taille plus petite innodb_buffer_pool_size.

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

Enregistrez le fichier de configuration et démarrez mysql

Sudo service mysql start
8
user2219975

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

0
Jeff

Essayez deux autres choses. 1. Réduisez la taille du pool de mémoire tampon innodb. 2. Modifiez le script initial mysql et ajoutez l'option --innodb.

Je me demande aussi si votre paquet est buggé. Pourriez-vous essayer une autre version mineure?

En outre, je suppose que votre serveur mysql a également été mis à niveau? Peut-être que cette version est cassée? La précision n'est pas encore définitive.

0
johnshen64