111 votes

InnoDB : Erreur : le fichier journal ./ib_logfile0 est de taille différente

Je viens d'ajouter les lignes suivantes dans /etc/mysql/my.cnf après avoir converti une base de données pour utiliser le moteur InnoDB.

innodb_buffer_pool_size = 2560M
innodb_log_file_size    = 256M
innodb_log_buffer_size  = 8M
innodb_flush_log_at_trx_commit  = 2
innodb_thread_concurrency   = 16
innodb_flush_method = O_DIRECT

Mais il affiche "ERREUR 2013 (HY000) à la ligne 2 : Lost connection to MySQL server during query" en redémarrant mysqld. Et le journal d'erreurs mysql montre ce qui suit

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
100118 20:52:52 [ERROR] Plugin 'InnoDB' init function returned error.
100118 20:52:52 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
100118 20:52:52 [ERROR] Unknown/unsupported table type: InnoDB
100118 20:52:52 [ERROR] Aborting

J'ai donc commenté cette ligne

# innodb_log_file_size  = 256M

Et il a redémarré mysql avec succès.

Je me demande ce qu'est le "5242880 bytes of log file" montré dans l'erreur mysql ? C'est la première base de données sur le moteur InnoDB sur ce serveur, alors quand et où ce fichier journal a-t-il été créé ? Dans ce cas, comment puis-je activer la directive innodb_log_file_size dans my.cnf ?

EDIT

J'ai essayé de supprimer /var/lib/mysql/ib_logfile0 et de redémarrer mysqld mais cela a toujours échoué. Il affiche maintenant ce qui suit dans le journal des erreurs.

100118 21:27:11  InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 256 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100 200
InnoDB: Error: log file ./ib_logfile1 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!

Résolution

Il fonctionne maintenant après avoir supprimé ib_logfile0 et ib_logfile1 dans /var/lib/mysql.

130voto

Ryan Sampson Points 2898

InnoDB est incroyablement pointilleux sur sa configuration ; si quelque chose ne va pas, il abandonnera et rentrera chez lui. Pour effectuer une modification de la taille du fichier journal sans perte de données :

  1. Annulez les modifications de configuration que vous avez apportées à la taille du fichier journal et redémarrez MySQL.
  2. Dans votre MySQL en cours d'exécution : SET GLOBAL innodb_fast_shutdown \=0 ;
  3. Arrêter MySQL
  4. Effectuez le changement de configuration de la taille du fichier journal.
  5. Supprimez les deux fichiers journaux.
  6. Lancez MySQL. Il se plaindra du manque de fichiers journaux, mais il les créera et tout ira bien.

1 votes

Bonjour, merci pour votre réponse, j'ai essayé votre méthode mais je n'ai toujours pas réussi.

44 votes

La suppression des fichiers ib_logfile0 et ib_logfile1 a résolu le problème pour moi.

1 votes

Et pour moi. Merci beaucoup, nous avons retrouvé notre wiki !

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