Table des matières
    Réparation de la base de données MySQL

    Comment réparer une corruption de la base de données du serveur MySQL ?


    Table des matières

      Résumé: Ce blog présente les raisons potentielles de la corruption de la base de données du serveur MySQL et les étapes à suivre pour résoudre le problème. Ces étapes incluent la sauvegarde de la base de données (db) avant d'effectuer des opérations de récupération, l'utilisation de 'innodb_force_recovery', etc.

      Téléchargement gratuit pour Windows
      Téléchargement gratuit

      Le blog explique également comment le logiciel de réparation MySQL peut vous aider lorsque vous ne parvenez pas à réparer et à restaurer la base de données.

      Une corruption de base de données dans le serveur MySQL, si elle n’est pas traitée correctement ou résolue à temps, peut entraîner des temps d’arrêt importants et des pertes de données.

      Malheureusement, il se peut que vous ne remarquiez même pas que votre serveur MySQL est devenu corrompu, jusqu’à ce que le serveur accède à une table corrompue ou que le serveur soit arrêté.

      Quelles sont les causes de la corruption des bases de données dans le serveur MySQL ?

      Voici quelques-unes des raisons les plus courantes de la corruption de la base de données du serveur MySQL :

      • Défaillance du matériel du serveur.
      • Le processus MySQL est tué au milieu de l’écriture sur le disque.
      • Le logiciel tiers permettant d’accéder à la base de données se bloque de manière inattendue.
      • Utilisateurs essayant de déplacer manuellement des fichiers de base de données dans le répertoire de données MySQL (ou datadir).
      • Bugs dans le logiciel du serveur MySQL.

      Outre ces raisons, la corruption de la base de données dépend également de l’utilisation du moteur de stockage MyISAM ou InnoDB. En effet, les tables MyISAM sont plus susceptibles d’être corrompues.

      Que faire lorsque la base de données MySQL est corrompue ?

      En général, lorsque la base de données MySQL est corrompue, il est recommandé de la restaurer à partir de la dernière copie de sauvegarde connue. Mais si vous n’avez pas de sauvegarde, les opérations de récupération peuvent vous aider à réparer la corruption de la base de données MySQL.

      Même si la sauvegarde est disponible, la tentative de récupération peut être une meilleure option car elle prend moins de temps pour remettre la base de données en ligne.

      Etapes de dépannage pour résoudre la corruption de la base de données MySQL

      Essayez de résoudre le problème de corruption de la base de données en suivant les étapes énumérées ci-dessous :

      REMARQUE : ces étapes ne fonctionnent que si le serveur de base de données MySQL est en cours d’exécution. Cependant, si le service MySQL cesse de fonctionner (est tombé en panne) et que vous ne pouvez pas vous connecter au client de ligne de commande MySQL, la seule option restante est de restaurer la base de données à partir d’une bonne sauvegarde connue. S’il n’y a pas de sauvegarde, l’utilisation d’un logiciel de réparation MySQL spécialisé peut s’avérer utile.

      Étape 1 – Sauvegarde de votre base de données

      Avant de tenter de réparer la base de données corrompue, veillez à sauvegarder vos fichiers de base de données.

      Bien que la base de données soit déjà corrompue, la sauvegarder permet de minimiser le risque de dommages supplémentaires, qui peuvent être causés par une opération de récupération.

      Pour sauvegarder tous les fichiers db, procédez comme suit :

      1. Arrêtez le serveur MySQL.
      2. Créez une copie de sauvegarde de votre répertoire de données.

      Étape 2 – Ramener la base de données en mode de récupération

      NOTE : Si le serveur MySQL utilise MyISAM comme moteur de stockage par défaut, passez à l’étape 3 pour connaître le processus de réparation de la base de données corrompue.

      Si InnoDB est le moteur de stockage par défaut de MySQL Server, dans certains cas de corruption de la base de données, le simple fait de vider, d’effacer et de recréer une ou quelques tables corrompues suffira. Pour cela, utilisez l’instruction CHECK TABLE pour vérifier les tables corrompues.

      Lisez ceci : Comment réparer une table de base de données MySQL sans interruption de service ?

      Si la corruption de la base de données est grave, vous rencontrerez probablement des problèmes lors du démarrage de votre serveur MySQL. Dans ce cas, forcer la récupération InnoDB peut aider à démarrer MySQL.

      Pour utiliser l’option ‘innodb_force_recovery‘, suivez les étapes suivantes :

      1. Ouvrez le fichier de configuration de MySQL et ajoutez la ligne de code suivante à la section [mysqld] avant de redémarrer le serveur :

      NOTE : La valeur de innodb_force_recovery est fixée à ‘0’ par défaut. Cependant, pour démarrer InnoDB et vider les tables MySQL, vous devez définir la valeur à “1” et l’augmenter progressivement (de 1 à 6).

      Cependant, n’oubliez pas que la valeur de l’option innodb_force_recovery (4 ou plus) augmente les risques de corruption des données.

      [mysqld]

      innodb_force_recovery=1

      • Enregistrez et fermez le fichier de configuration de MySQL, puis essayez de redémarrer le service MySQL.
      • Si vous êtes en mesure de démarrer MySQL, transférez toutes vos bases de données MySQL dans un seul fichier à l’aide de la commande suivante :

      mysqldump -u [user] -p [password] –all-databases > all_databases.sql

      REMARQUE : Le fichier de vidage de cet exemple s’appelle all_databases.sql. Mais vous pouvez le modifier à votre guise.

      • Ensuite, désactivez le mode de récupération InnoDB. Pour ce faire, commentez la ligne suivante dans la section [mysqld] :

      #innodb_force_recovery=…

      • Enregistrez les modifications dans le fichier de configuration, puis démarrez le serveur MySQL.
      • Restaurez les bases de données à partir du dump (fichier de sauvegarde) que vous avez créé à l’étape 3 :

       mysql> source all_databases.sql

      Lire la suite : Les meilleures façons de réparer une corruption de table InnoDB dans MySQL.

      Étape 3 – Réparation des tables MyISAM à l’aide de myisamchk

      Exécutez la commande myisamchk pour réparer les tables MyISAM en suivant les étapes suivantes :

      NOTE : La commande myisamchk ne fonctionne pas pour les tables qui utilisent le moteur InnoDB.

      1. Arrêtez le serveur MySQL.
      2. Utilisez la commande suivante pour vérifier les tables corrompues :

      myisamchk TABLE

      • Pour vérifier toutes les tables d’une base de données corrompue, tapez la commande suivante :

      myisamchk *.MYI

      • Essayez de réparer une table corrompue en exécutant la commande suivante :

      myisamchk -recover TABLE

      • Démarrez le serveur MySQL.

      Consultez ce lien pour obtenir des informations détaillées sur “Comment réparer une table MyISAM à l’aide de myisamchk”.

      Et si rien ne marche ?

      Si les étapes de dépannage ne permettent pas de résoudre le problème, utilisez le logiciel Stellar Repair for MySQL pour réparer la base de données corrompue et restaurer tous ses objets. Le logiciel peut réparer la base de données MySQL sur les systèmes Windows et Linux.

      Quelques raisons pour lesquelles vous devriez utiliser le logiciel Stellar Repair for MySQL

      • Répare les tables de la base de données MySQL qui utilisent les moteurs de base de données InnoDB (.frm, .ibdata, .idb) et MyISAM (.frm, .myd, .myi).
      • Répare par lots plusieurs bases de données MySQL en un seul processus.
      • Récupère tous les objets de la base de données tels que les clés, les tables, les propriétés des tables, les types de données, les vues, les déclencheurs.
      • Prévisualise les objets de la base de données récupérables.
      • Permet d’enregistrer la base de données réparée dans plusieurs formats de fichiers tels que MySQL, CSV, HTML et XLS.
      • Prend en charge MySQL 8.x, 6.x, 5.x, 4.x et 3.x.

      Etapes pour réparer une base de données MySQL corrompue avec le logiciel Stellar Repair for MySQL

      Prérequis :

      • L’emplacement du fichier ‘ibdata’ doit être exactement le même que celui de la base de données MySQL.
      • Assurez-vous que le disque de destination dispose de suffisamment d’espace libre pour stocker toutes les bases de données MySQL récupérées.
      • MySQL doit être installé sur votre système.

      Étape 1 : Téléchargez, installez et lancez le logiciel Stellar Repair for MySQL.

      Téléchargement gratuit pour Windows

      Étape 2 : Dans la fenêtre Select Data Folder, sélectionnez la version de MySQL que vous utilisez.

      Fenêtre de sélection du dossier de données

      Figure 2- Fenêtre de sélection du dossier de données

      Étape 3 : La fenêtre Sélectionner une base de données s’affiche. Sélectionnez la base de données que vous souhaitez réparer.

      Fenêtre de sélection de la base de données

      Figure 3- Fenêtre de sélection de la base de données

      Étape 4 : Cliquez sur Réparer pour lancer le processus de réparation.

      Étape 5 : Lorsque la boîte de dialogue Réparation terminée apparaît, cliquez sur OK.

      Étape 6 : Le logiciel affiche un aperçu de la base de données réparée et de ses composants récupérables.

      Fenêtre de prévisualisation

      Figure 4 – Fenêtre de prévisualisation

      Étape 7 : Cliquez sur Enregistrer dans le menu Fichier pour enregistrer la base de données réparée.

      Menu Fichier

      Figure 5 – Menu Fichier

      Étape 8 : Dans la fenêtre Enregistrer la base de données, choisissez le format de fichier MySQL, puis cliquez sur Enregistrer.

      Fenêtre d'enregistrement de la base de données

      Figure 6 – Fenêtre d’enregistrement de la base de données

      Étape 9 : Lorsque le message “Processus d’enregistrement terminé” apparaît, cliquez sur OK.

      Boîte de message d'enregistrement complet

      Figure 7 – Boîte de message d’enregistrement complet

      La base de données réparée sera enregistrée à l’emplacement sélectionné.

      Note de fin

      Lorsqu’il s’agit de résoudre une corruption de base de données sur un serveur MySQL, l’exécution des étapes de dépannage présentées dans ce billet peut vous aider à résoudre le problème.

      Cependant, si vous n’êtes pas un expert en matière de corruption de base de données ou si vous avez une base de données de grande taille (avec des gigaoctets ou des téraoctets de données), vous risquez de ne pas pouvoir restaurer la base de données corrompue à l’aide des options de réparation et de récupération. En outre, les options de récupération telles que innodb_force_recovery définies sur une valeur de 4 ou plus peuvent entraîner une corruption des données.

      Une meilleure alternative consiste à utiliser un logiciel de réparation MySQL spécialement conçu pour réparer facilement une base de données corrompue, dans le format d’origine.

      Was this article helpful?

      No NO

      A propos de l'auteur

      Himanshu Shakya

      Himanshu is a Tech Enthusiast & Blogger at Stellar and having knowledge of Japanese Language. And apart from this in his spare time he likes playing Chess.

      Article similaire

      POURQUOI STELLAR® EST LE LEADER MONDIAL

      Pourquoi choisir Stellar?

      • 0M+

        Clients

      • 0+

        Années d'excellence

      • 0+

        Ingénieurs R&D

      • 0+

        Pays

      • 0+

        Témoignages

      • 0+

        Récompenses reçues