Vous ouvrez WooCommerce et certaines commandes ont disparu. Ou pire : une erreur SQL s’affiche à la place de votre tableau de bord. Votre base de données WooCommerce est corrompue.
C’est un problème sérieux, mais pas irréversible. Dans la majorité des cas, une base corrompue se répare en quelques minutes si vous agissez méthodiquement.
Les signes d’une base de données corrompue
- Commandes qui disparaissent ou doublons de commandes
- Erreur “Error establishing a database connection”
- Page blanche sur le back-office WooCommerce
- Produits dont le stock ne se met pas à jour
- Clients qui ne peuvent pas se connecter
- Erreurs SQL dans les logs
Si vous voyez ces symptômes, arrêtez toute activité sur le site et passez en mode maintenance. Chaque nouvelle commande risque d’écrire dans des tables corrompues et d’aggraver le problème.
Cause 1 : table corrompue après un crash serveur
Si le serveur s’est arrêté brutalement (panne électrique, redémarrage forcé, dépassement de mémoire), MySQL/MariaDB peut avoir laissé des tables dans un état incohérent.
Réparation avec phpMyAdmin
- Connectez-vous à phpMyAdmin
- Sélectionnez votre base de données WooCommerce
- Cochez les tables suspectes (généralement
wp_posts,wp_postmeta,wp_woocommerce_order_items) - Dans le menu déroulant en bas, choisissez Réparer
Réparation en ligne de commande (plus fiable)
Si vous avez un accès SSH :
mysql -u utilisateur -p
Puis :
USE nom_de_votre_base;
REPAIR TABLE wp_posts, wp_postmeta, wp_woocommerce_order_items, wp_woocommerce_order_itemmeta;
Si la réparation échoue, passez à l’étape suivante : restauration depuis la sauvegarde.
Cause 2 : index endommagé
Les index sont des structures qui accélèrent les requêtes. Si un index est corrompu, les requêtes peuvent renvoyer des résultats incorrects ou planter.
Reconstruction des index
USE nom_de_votre_base;
REPAIR TABLE wp_posts USE_FRM;
REPAIR TABLE wp_postmeta USE_FRM;
L’option USE_FRM force MySQL à reconstruire l’index à partir du fichier .frm (structure de la table).
Cause 3 : base de données surchargée
WooCommerce accumule des données rapidement : révisions de produits, logs de commandes, sessions abandonnées, métadonnées orphelines. Au bout de quelques années, la base peut atteindre plusieurs gigaoctets et devenir instable.
Nettoyage de la base
Avant tout nettoyage : sauvegarde complète.
-- Supprimer les révisions de produits
DELETE FROM wp_posts WHERE post_type = 'revision' AND post_parent IN (SELECT ID FROM wp_posts WHERE post_type = 'product');
-- Supprimer les métadonnées orphelines
DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts p ON pm.post_id = p.ID WHERE p.ID IS NULL;
-- Supprimer les sessions expirées
DELETE FROM wp_options WHERE option_name LIKE '_wc_session_%' AND option_value < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));
-- Optimiser les tables
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_woocommerce_order_items, wp_woocommerce_order_itemmeta;
Attention : ces requêtes sont destructives. Ne les exécutez jamais sans sauvegarde préalable.
Cause 4 : conflit de clés étrangères (InnoDB)
Si vous utilisez le moteur InnoDB (recommandé), les tables peuvent avoir des contraintes de clés étrangères. Si une contrainte est violée, les requêtes échouent.
Vérification des contraintes
USE nom_de_votre_base;
SHOW ENGINE INNODB STATUS;
Cherchez la section “LATEST FOREIGN KEY ERROR” pour identifier la contrainte problématique.
Restauration depuis une sauvegarde
Si la réparation échoue, la restauration est la solution la plus sûre.
Étape 1 : créer une nouvelle base
Dans phpMyAdmin ou en ligne de commande :
CREATE DATABASE nouvelle_base CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Étape 2 : importer la sauvegarde
mysql -u utilisateur -p nouvelle_base < sauvegarde-bdd-2026.sql
Étape 3 : mettre à jour wp-config.php
Modifiez le fichier wp-config.php pour pointer vers la nouvelle base :
define('DB_NAME', 'nouvelle_base');
Prévention : éviter la corruption
La corruption de base de données est presque toujours évitable.
- Sauvegardes quotidiennes automatisées
- Monitoring de l’espace disque (une base qui atteint 100 % du disque corrompt les tables)
- Mises à jour WooCommerce testées en staging
- Nettoyage trimestriel des données obsolètes
- Hébergement avec base de données sur SSD (plus fiable que les disques mécaniques)
Nos forfaits de maintenance WooCommerce incluent le nettoyage trimestriel de la base de données, la surveillance de l’espace disque, et des sauvegardes quotidiennes avec conservation de 30 jours.
Quand faire appel à un expert
Si la base est corrompue et que vous n’avez pas de sauvegarde récente, la situation est critique. Des techniques avancées de récupération existent (récupération de données sur le disque, parsing des logs binaires), mais elles nécessitent un accès root au serveur et une expertise MySQL.
Notre service de dépannage urgence peut intervenir pour :
- Réparer les tables corrompues
- Restaurer depuis la dernière sauvegarde propre
- Récupérer les données manquantes depuis les logs
- Nettoyer et optimiser la base pour éviter la récidive