Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql/InnoDB cesse de fonctionner sur le serveur Linode

Je viens d'avoir ceci, se présentant initialement comme un "mysql réapparaît trop vite " erreur dans le dmesg journaux.

De lire ailleurs Je l'ai retracé jusqu'à ce que vous avez trouvé, et je pense que cela indique une sorte de corruption dans les fichiers de métadonnées d'InnoDB. InnoDB fait des choses comme assurer l'intégrité des transactions/annulations et l'intégrité de la clé étrangère primaire. C'est ce dont l'erreur "incompatibilité de somme de contrôle" vous avertit.

Vous ne dites pas comment vous démarrez mysqld, mais vous utilisez peut-être une variante sur /etc/init.d/mysqld start ou service mysqld start . Exécutez plutôt le démon explicitement en tant que commande :

sudo /usr/sbin/mysqld --innodb_force_recovery 0

et, tant que vous savez pourquoi vous le faites, incrémentez progressivement la valeur zéro de --innodb_force_recovery jusqu'à ce que le processus démarre.

Avertissement : Le innodb_force_recovery Le paramètre détermine à quel point mysqld essaiera de "fixer de force" l'erreur de somme de contrôle dans le stockage InnoDB. Vous pouvez donc aggraver le problème ou avoir besoin d'une reconstruction ultérieure de l'index si vous forcez la correction avec un nombre élevé ici, car InnoDB fera des choses de plus en plus drastiques pour essayer de se réparer.

Chaque fois que vous ne parvenez pas à redémarrer mysqld avec un numéro particulier, par ex. 2 , vous devez rechercher les messages d'erreur que vous obtenez avant de l'incrémenter à 3 ainsi vous pouvez être sûr que vous faites la bonne chose. Je ne suis pas un expert de toutes les erreurs que vous pourriez rencontrer, donc je ne peux pas fournir de commentaires pour chaque condition exceptionnelle :tout ce que je dis, c'est d'utiliser --innodb_force_recovery avec soin !