Reparer une Base de Donnees PrestaShop - Guide Complet

Comment reparer votre base de donnees PrestaShop en toute securite. Comparatif des meilleurs modules, methode manuelle phpMyAdmin, et quand appeler un expert Cyberial.

La base de donnees est le coeur de votre boutique PrestaShop. C’est la que sont stockes vos produits, commandes, clients, configurations et tout le reste. Quand elle tombe en panne ou se corrompt, c’est toute votre activite qui s’arrete.

Ce guide couvre tout ce que vous devez savoir pour diagnostiquer et reparer les problemes de base de donnees PrestaShop : les erreurs courantes, les methodes manuelles via phpMyAdmin, les meilleurs modules de reparation, et quand il est temps de faire appel a un professionnel.

Regle d’or : avant toute manipulation de la base de donnees, faites un backup complet. Sans backup, une erreur de manipulation peut entrainer une perte de donnees irreversible.

Symptomes d’une base de donnees corrompue

Comment savoir si votre base de donnees a un probleme ? Voici les signes les plus courants :

  • Erreurs MySQL affichees sur le site : Table 'ps_product' is marked as crashed, Can't open file, Table doesn't exist
  • Pages produit qui ne se chargent plus alors que d’autres pages fonctionnent
  • Back-office qui rame ou qui affiche des erreurs a certains endroits
  • Commandes manquantes ou donnees incoherentes entre le front-office et le back-office
  • Erreurs lors de l’import/export de produits ou de clients
  • Site extremement lent sans raison apparente (requetes SQL qui prennent trop de temps)

Si vous observez un ou plusieurs de ces symptomes, votre base de donnees a probablement besoin d’une reparation ou d’une optimisation.

Diagnostic : identifier le probleme

Avant de reparer, il faut comprendre ce qui ne va pas. Voici comment diagnostiquer le probleme.

Activer le mode debug

La premiere etape est d’activer le mode debug de PrestaShop pour voir les erreurs exactes :

  1. Ouvrez le fichier config/defines.inc.php a la racine de votre installation.
  2. Changez define('_PS_MODE_DEV_', false); en define('_PS_MODE_DEV_', true);.
  3. Rechargez la page. Les erreurs MySQL s’afficheront en clair.

Pour plus de details sur le mode debug, consultez notre guide depannage PrestaShop.

Verifier les logs MySQL

Si le mode debug ne suffit pas, consultez les logs MySQL de votre serveur :

  • Hebergement mutualise (OVH, etc.) : les logs sont accessibles depuis le panneau de controle, section “Logs” ou “Statistiques”
  • VPS/Serveur dedie : consultez /var/log/mysql/error.log ou /var/log/mysqld.log

Les logs vous indiqueront les tables corrompues, les requetes qui echouent, et les erreurs de connexion.

Verifier l’etat des tables dans phpMyAdmin

  1. Connectez-vous a phpMyAdmin (depuis votre panneau d’hebergement).
  2. Selectionnez la base de donnees de votre boutique PrestaShop.
  3. Cliquez sur Tout cocher en bas de la liste des tables.
  4. Dans le menu deroulant “Pour la selection”, choisissez Verifier la table.
  5. phpMyAdmin affichera le statut de chaque table. Les tables marquees crashed ou corrupt sont celles qui posent probleme.

Methode 1 : Reparation via phpMyAdmin

phpMyAdmin est l’outil le plus fiable pour reparer une base de donnees PrestaShop. Il est disponible chez la quasi-totalite des hebergeurs.

Reparer les tables corrompues

  1. Connectez-vous a phpMyAdmin.
  2. Selectionnez votre base de donnees PrestaShop.
  3. Cochez les tables qui posent probleme (ou cochez-les toutes par securite).
  4. Dans le menu deroulant “Pour la selection”, choisissez Reparer la table.
  5. phpMyAdmin executera un REPAIR TABLE sur chaque table selectionnee.
  6. Verifiez le resultat : le statut doit passer a OK.

Optimiser les tables

Apres la reparation, optimisez les tables pour recuperer l’espace disque perdu et ameliorer les performances :

  1. Selectionnez toutes les tables.
  2. Dans le menu deroulant, choisissez Optimiser la table.
  3. Attendez la fin de l’operation (cela peut prendre plusieurs minutes sur les grosses bases de donnees).

L’optimisation reorganise physiquement les donnees sur le disque et met a jour les statistiques d’index. C’est l’equivalent d’une defragmentation pour votre base de donnees.

Nettoyer les donnees inutiles

Avec le temps, la base de donnees PrestaShop accumule des donnees inutiles qui la ralentissent. Voici les tables a nettoyer regulierement :

TableContenuAction recommandee
ps_logLogs du back-officeSupprimez les entrees de plus de 3 mois
ps_connectionsConnexions visiteursSupprimez les entrees de plus de 1 mois
ps_connections_pagePages vues par connexionSupprimez les entrees de plus de 1 mois
ps_guestVisiteurs anonymesSupprimez les entrees de plus de 3 mois
ps_cartPaniersSupprimez les paniers de plus de 3 mois sans commande associee
ps_mailHistorique emailsSupprimez les entrees de plus de 6 mois

Attention : ne supprimez jamais les tables elles-memes, uniquement leur contenu obsolete. Et faites toujours un backup avant de supprimer des donnees.

Exemple de requete SQL pour nettoyer les logs de plus de 3 mois :

DELETE FROM ps_log WHERE date_add < DATE_SUB(NOW(), INTERVAL 3 MONTH);

Methode 2 : Reparation via la ligne de commande (SSH)

Si vous avez un acces SSH a votre serveur, la reparation en ligne de commande est plus rapide et plus fiable que phpMyAdmin, surtout sur les grosses bases de donnees.

Reparer toutes les tables

mysqlcheck -u utilisateur -p --repair nom_base_de_donnees

Optimiser toutes les tables

mysqlcheck -u utilisateur -p --optimize nom_base_de_donnees

Verifier l’integrite

mysqlcheck -u utilisateur -p --check nom_base_de_donnees

Ces commandes traitent toutes les tables en une seule operation, sans avoir a les selectionner une par une dans phpMyAdmin.

Methode 3 : Modules de reparation de base de donnees

Pour ceux qui preferent une interface graphique sans toucher a phpMyAdmin, il existe des modules dedies.

Comparatif des meilleurs modules

ModuleFonctionnalitesPrixReparation tablesOptimisationNettoyageBackup integre
Database RepairReparation et verification des tables corrompuesGratuitOuiOuiNonNon
Advanced Database RepairReparation avancee avec sauvegarde automatiqueGratuitOuiOuiNonOui
PrestaShop Database CleanerNettoyage et optimisation de la basePayant (~30-50 EUR)NonOuiOuiNon
DB DoctorDiagnostic complet + reparation + optimisationPayant (~50-80 EUR)OuiOuiOuiOui

Quel module choisir ?

  • Pour un probleme urgent (table corrompue, site en panne) : Advanced Database Repair (gratuit, avec backup integre)
  • Pour une maintenance reguliere (nettoyage, optimisation) : PrestaShop Database Cleaner ou DB Doctor
  • Pour les petits budgets : Database Repair (gratuit, fait le minimum necessaire)

Installation d’un module de reparation

  1. Telechargez le module depuis PrestaShop Addons ou le site de l’editeur.
  2. Dans le back-office, allez dans Modules > Gestionnaire de modules.
  3. Cliquez sur Installer un module et selectionnez le fichier ZIP.
  4. Une fois installe, cliquez sur Configurer pour lancer la reparation.

Important : si votre back-office est inaccessible a cause du probleme de base de donnees, vous ne pourrez pas installer un module. Dans ce cas, utilisez la methode phpMyAdmin ou SSH decrite ci-dessus.

Erreurs courantes et leurs solutions

”Table is marked as crashed and should be repaired”

C’est l’erreur de base de donnees la plus frequente sur PrestaShop. Une table a ete corrompue, generalement a cause d’un crash serveur ou d’un arret brutal de MySQL.

Solution : reparation via phpMyAdmin (methode 1) ou SSH (methode 2). Selectionnez la table indiquee dans le message d’erreur et executez un REPAIR TABLE.

”Can’t connect to local MySQL server”

PrestaShop ne peut pas se connecter au serveur MySQL. Le serveur MySQL est arrete ou les identifiants sont incorrects.

Solutions :

  1. Verifiez que MySQL tourne : contactez votre hebergeur ou executez systemctl status mysql en SSH.
  2. Verifiez les identifiants dans app/config/parameters.php (PS 1.7/8) ou config/settings.inc.php (PS 1.6).
  3. Si les identifiants sont corrects, le serveur MySQL est probablement surcharge. Attendez quelques minutes ou contactez votre hebergeur.

”Table ‘ps_*’ doesn’t exist”

Une table a ete supprimee ou n’a jamais ete creee (souvent apres une installation de module qui a echoue).

Solutions :

  1. Si c’est une table de module : reinstallez le module. L’installeur recree les tables manquantes.
  2. Si c’est une table core de PrestaShop : restaurez votre backup ou reconstruisez la table a partir d’une installation propre.

”Incorrect key file for table”

L’index de la table est corrompu. Le fichier d’index (.MYI) est endommage.

Solution : executez un REPAIR TABLE nom_de_la_table dans phpMyAdmin. Si la reparation echoue, essayez REPAIR TABLE nom_de_la_table USE_FRM qui reconstruit l’index a partir de la definition de la table.

Base de donnees trop volumineuse

Une base de donnees PrestaShop depasse rarement 500 Mo pour une boutique standard. Si la votre fait plusieurs Go, elle contient probablement des donnees inutiles accumulees au fil du temps.

Solution : nettoyez les tables ps_log, ps_connections, ps_connections_page, ps_guest, ps_mail et les anciens paniers (voir la section nettoyage ci-dessus).

Prevenir les problemes de base de donnees

La meilleure reparation est celle qu’on n’a pas a faire. Voici comment prevenir les problemes :

  1. Backups automatiques : programmez un backup quotidien de votre base de donnees. La plupart des hebergeurs proposent des sauvegardes automatiques, mais verifiez qu’elles sont bien actives.
  2. Nettoyage regulier : une fois par mois, nettoyez les tables de logs et de connexions.
  3. Mises a jour : gardez PrestaShop et vos modules a jour. Les correctifs de securite corrigent aussi des bugs de base de donnees.
  4. Hebergement adapte : un hebergement mutualise peut suffire pour une petite boutique, mais une boutique active a besoin d’un VPS ou d’un serveur dedie pour eviter les crashs MySQL lies au partage de ressources.
  5. Monitoring : surveillez la taille de votre base de donnees et les temps de reponse des requetes SQL.

Pour un guide complet sur la maintenance, consultez notre article sur la maintenance pour un site web PrestaShop.

Quand faire appel a un professionnel

Certains problemes de base de donnees depassent les manipulations classiques :

  • Donnees corrompues non reparables par REPAIR TABLE
  • Tables core manquantes sans backup disponible
  • Migration de base de donnees entre versions de PrestaShop
  • Problemes de performance malgre l’optimisation
  • Piratage avec injection SQL ou modifications non autorisees des donnees

Dans ces cas, un diagnostic expert est necessaire. Chez Cyberial, nous intervenons 7j/7 pour reparer et optimiser les bases de donnees PrestaShop. Notre equipe certifiee diagnostique la cause exacte et applique la solution la plus sure, sans risque pour vos donnees.

Questions frequentes

Est-ce que reparer la base de donnees supprime des produits ou commandes ?

Non. La reparation (REPAIR TABLE) corrige la structure physique des tables sans modifier les donnees qu’elles contiennent. Vos produits, commandes et clients sont preserves. Cependant, faites toujours un backup avant par precaution.

Combien de temps prend une reparation de base de donnees PrestaShop ?

Pour une boutique standard (moins de 500 Mo de base de donnees), la reparation prend quelques minutes. Pour les grosses bases (plusieurs Go), comptez 15 a 30 minutes. Le nettoyage et l’optimisation peuvent prendre plus longtemps selon la quantite de donnees a traiter.

Puis-je utiliser phpMyAdmin sans connaissances SQL ?

Oui, pour les operations de base (reparation, optimisation, verification). phpMyAdmin propose des menus deroulants qui executent les commandes SQL pour vous. En revanche, le nettoyage des donnees inutiles necessite d’executer des requetes SQL comme celles presentees dans ce guide.

Mon hebergeur peut-il reparer la base de donnees pour moi ?

La plupart des hebergeurs proposent un support technique qui peut reparer les tables corrompues sur demande. Cependant, ils ne feront pas de nettoyage ni d’optimisation avancee. Pour une maintenance complete, faites appel a un specialiste PrestaShop.


Besoin d’aide avec votre site PrestaShop ? Cyberial est une agence PrestaShop certifiée spécialisée en maintenance et dépannage 7j/7. Découvrir nos services