Il peut arrive qu'une ou plusieurs tables MySQL (ou MariaDB) partent en vrille. Suivant la gravité de la situation et les tables impactées le moteur SGBD peut ne plus redémarrer.
Une seule commande suffit pour lancer la vérification.
Lancer la vérification + réparation
Si vous pouvez arrêter le service mysql c'est mieux (moins d'activité disque) :
sudo service mysql stop
Si c'est impossible pour vous il est aussi possible de le faire avec le service en cours de fonctionnement.
Voici la commande pour lancer la réparation sur toutes les tables de la base coucou :
mysqlcheck -u root -p --auto-repair --check coucou
Voici la commande pour lancer la réparation sur toutes les tables de toutes les bases :
mysqlcheck -u root -p --auto-repair --check --all-databases
Entrez alors votre mot de passe MySQL root, puis patientez.
...
phpmyadmin.pma__bookmark OK
phpmyadmin.pma__central_columns OK
phpmyadmin.pma__column_info OK
phpmyadmin.pma__designer_settings OK
phpmyadmin.pma__export_templates OK
phpmyadmin.pma__favorite OK
phpmyadmin.pma__history OK
phpmyadmin.pma__navigationhiding OK
phpmyadmin.pma__pdf_pages OK
phpmyadmin.pma__recent OK
phpmyadmin.pma__relation OK
Soyez patient ! Cela peut être très long, évitez donc de le faire en SSH, ou à l'aide de screen.
Pensez à redémarrer le service à la fin de la réparation :
sudo service mysql start
myisamchk vs mysqlcheck
Si vous utilisez MyISAM comme moteur il se peut que la commande myisamchk soit plus à même de réparer les tables, je vous renvoie vers ce billet comparatif des outils mysqlcheck et myisamchk.
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
Le premier commentaire c'est pour vous 👇