Summary: Lisez ce blog pour découvrir comment réparer la base de données MySQL sous Linux manuellement ou en utilisant le logiciel de réparation de base de données MySQL. Utilisez le logiciel pour récupérer tous les composants de la base de données sans affecter le fichier de base de données original. Vous pouvez télécharger la version de démonstration gratuite du logiciel pour prévisualiser tous les composants de la base de données récupérables.
Lorsque vous utilisez la base de données MySQL sur une machine Linux, la base de données peut être corrompue pour plusieurs raisons, telles qu’une attaque de virus sur la machine, une panne matérielle, etc. Vous pouvez essayer de restaurer la base de données à partir d’une sauvegarde mise à jour. Cependant, si la sauvegarde n’est pas disponible, vous pouvez essayer de réparer la base de données MySQL.
Méthodes de réparation de la base de données MySQL sous Linux
Méthode 1 – Réparation manuelle de la base de données MySQL
Remarque : l’approche manuelle étape par étape pour réparer la base de données MySQL peut varier en fonction du moteur de stockage que vous utilisez : InnoDB ou MyISAM. Ainsi, le dépannage d’une base de données corrompue en exécutant différentes étapes manuelles prend du temps, ce qui augmente le temps d’indisponibilité de la base de données. Utilisez un outil de réparation de base de données MySQL pour réparer rapidement la base de données corrompue et la restaurer dans sa forme originale.
Nous aborderons ici la procédure de réparation d’une base de données MySQL corrompue sur un système basé sur Linux, étape par étape :
Étape 1 : Sauvegarde de la base de données
Veillez à sauvegarder votre base de données avant de tenter de la réparer. Vous éviterez ainsi toute perte supplémentaire de votre base de données. Pour sauvegarder les fichiers de votre base de données MySQL, procédez comme suit :
1 Connectez-vous à votre serveur via SSH
2. Arrêtez votre serveur MySQL en utilisant l’une des commandes suivantes en fonction de votre distribution Linux :
Pour CentOS et Fedora, entrez :
service mysqld stop |
Pour Ubuntu et Debian, entrez :
service mysql stop |
3. Pour sauvegarder votre fichier de base de données, tapez
cp -r /var/lib/mysql /var/lib/mysql_backup |
4. Redémarrez le serveur MySQL en exécutant la commande suivante dans votre système Linux :
service mysqld start |
Étape 2 : Exécuter “mysqlcheck” pour vérifier et réparer les bases de données MySQL
Remarque : la commande mysqlcheck est utile pour les utilisateurs qui souhaitent réparer la base de données et les tables MySQL sans arrêter le service MySQL.
Une fois que vous avez sauvegardé vos bases de données, exécutez la commande mysqlcheck pour vérifier et réparer les bases de données et les tables pour les moteurs de base de données MyISAM ou InnoDB. Suivez les étapes suivantes pour utiliser mysqlcheck afin de réparer la base de données :
1. En tant qu’utilisateur root, entrez la commande suivante :
cd /var/lib/mysql |
2. Vérifiez que la base de données et toutes ses tables ne sont pas corrompues en tapant la commande :
mysqlcheck nom_de_la_base_de_données |
Pour vérifier l’absence d’erreurs dans une table de base de données spécifique, tapez la commande suivante :
mysqlcheck nom_de_la_base nom_de_la_table |
3. Si la table n’est pas corrompue, un message OK s’affiche. Toutefois, si la table de la base de données affiche des erreurs, vous devez la réparer à l’aide de la commande suivante :
mysqlcheck -r nom_base nom_table |
Si l’exécution de la commande mysqlcheck ne résout pas le problème, passez à l’étape suivante.
Étape 3 : Effectuer les diagnostics spécifiques au moteur
Exécutez les diagnostics spécifiques au moteur de stockage (InnoDB ou MyISAM) utilisé par la base de données et les tables. Suivez la procédure appropriée ci-dessous pour le moteur de stockage de la base de données de votre table.
Réparation des tables MyISAM avec myisamchk
Lorsque votre base de données fonctionne sur le moteur de stockage MyISAM, exécutez la commande myisamchk pour la réparer. Pour ce faire, procédez comme suit :
Remarque : la commande myisamchk ne fonctionne que pour le moteur de stockage MyISAM.
1. Arrêtez votre serveur en utilisant l’une des commandes ci-dessous pour votre distribution Linux :
Pour CentOS et Fedora, utilisez :
service mysqld stop |
Pour Debian et Ubuntu, utilisez :
service mysql stop |
2. Tapez ce qui suit :
cd /var/lib/mysql |
Remplacez le répertoire ci-dessus par le répertoire dans lequel se trouve votre base de données corrompue. Par exemple, si la base de données s’appelle db1, tapez cd db1.
3. Vérifiez les tables corrompues dans la base de données en utilisant la commande suivante :
myisamchk nom_de_table |
Pour vérifier toutes les tables de la base de données, tapez la commande suivante :
myisamchk *.MYI |
4. Une fois que vous avez identifié les tables corrompues dans la base de données, utilisez la commande mysqlchk pour réparer les tables en suivant cette commande :
myisamchk -récupérer la table |
5. Redémarrer le serveur :
Pour CentOS et Fedora, tapez :
service mysqld start |
Pour Debian et Ubuntu, tapez :
service mysql start |
Exécution du processus de récupération InnoDB
Pour réparer une base de données fonctionnant sur le moteur de stockage InnoDB, procédez comme suit :
- Ouvrez le fichier de configuration MySQL “my.cnf”. L’emplacement du fichier my.cnf varie en fonction de votre système d’exploitation Linux. Sous CentOS et Fedora, vous trouverez le fichier dans le répertoire ‘/etc’. Sous Debian et Ubuntu, le fichier de configuration se trouve dans le répertoire ‘/etc/mysql’.
- Une fois que vous avez localisé le fichier my.cnf, trouvez la section [mysqld].
- Dans la section [mysqld], ajoutez la ligne suivante :
innodb_force_recovery=4 |
4. Enregistrez les modifications dans le fichier de configuration de MySQL, puis redémarrez le serveur MySQL :
Pour CentOS et Fedora :
service mysqld restart |
Pour Debian et Ubuntu :
service mysql restart |
5. Exécutez la commande suivante pour exporter toutes les bases de données vers le fichier databasesbkp.sql :
mysqldump -all-databases > databasesbkp.sql |
6. Démarrez le service mysql, puis utilisez la commande DROP DATABASE pour tenter de supprimer la base de données concernée.
Remarque : si vous ne parvenez pas à supprimer une base de données, supprimez-la manuellement après avoir arrêté le serveur MySQL.
7. Arrêtez le serveur MySQL.
8. Tapez la commande suivante pour supprimer la base de données manuellement :
cd /var/lib/mysql rm -rf database |
Remplacez “base de données” par le nom de la base de données que vous souhaitez réparer.
9. Ouvrez à nouveau le fichier my.cnf et commentez la ligne suivante :
#innodb_force_recovery=4 |
Cela désactivera le mode de récupération InnoDB.
10. Enregistrez les modifications apportées au fichier my.cnf, puis démarrez votre serveur MySQL.
11. Essayez de restaurer la base de données à partir de la sauvegarde créée à l’étape 5 :
mysql < databasesbkp.sql |
Vérifiez maintenant la base de données restaurée. Si le problème persiste, utilisez un logiciel de réparation de base de données MySQL spécialisé pour restaurer la base de données.
Méthode 2 – Réparation de la base de données MySQL avec Stellar Repair for MySQL
Stellar Repair for MySQL est un puissant logiciel de réparation de bases de données MySQL recommandé par les administrateurs de bases de données pour réparer les bases de données gravement corrompues et restaurer tous leurs objets. Le logiciel permet de réparer les bases de données MySQL sur les systèmes Linux et Windows.
Pour réparer une base de données MySQL corrompue créée sur un système Linux, procédez comme suit :
Étape 1 : Télécharger et installer le logiciel. Pour l’installation du logiciel, ouvrez le terminal Linux, puis entrez la commande suivante :
sudo yum install app_name |
Note : Ici, “app_name” est le chemin d’accès au logiciel Stellar Repair for MySQL que vous devez installer.
Étape 2 : Lancer le logiciel. L’interface principale du logiciel s’ouvre sur une fenêtre d’instructions. Cliquez sur OK pour continuer.
Étape 3 : Dans la fenêtre Sélectionner le dossier de données, sélectionnez la version de votre installation MySQL, puis parcourez et sélectionnez le dossier de données contenant la base de données corrompue.
Étape 4 : La liste des bases de données stockées dans le dossier de données sélectionné s’affiche. Sélectionnez toutes les bases de données ou une base de données spécifique que vous souhaitez réparer, puis cliquez sur Réparer.
Étape 5 : Cliquez sur OK lorsque la boîte de dialogue “Réparation terminée” apparaît.
Étape 6 : Le logiciel affiche un aperçu des composants de la base de données MySQL récupérables.
Étape 7 : Cliquez sur Enregistrer dans le menu Fichier pour enregistrer le fichier de base de données MySQL réparé.
Étape 8 : Dans la boîte de dialogue “Enregistrer la base de données”, choisissez MySQL sous Enregistrer sous, puis entrez les détails requis pour vous connecter à votre serveur MySQL. Cliquez sur Enregistrer pour sauvegarder le fichier de base de données réparé dans le serveur MySQL.
Étape 9 : Une boîte de message “Enregistrement terminé” s‘affiche lorsque le processus d’enregistrement du fichier réparé est terminé.
Après avoir exécuté ces étapes, la base de données MySQL sera réparée.
Conclusion
La réparation de la base de données MySQL dans un système basé sur Linux à l’aide de la méthode manuelle ne garantit pas la restauration de tous les composants de la base de données. Elle peut permettre de résoudre des problèmes mineurs, mais pas de réparer une base de données MySQL gravement endommagée. Le logiciel Stellar Repair for MySQL peut vous aider à réparer une base de données gravement corrompue et à récupérer tous ses composants, en préservant la structure et le contenu des fichiers d’origine.