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 :
- Ouvrez le fichier
config/defines.inc.phpa la racine de votre installation. - Changez
define('_PS_MODE_DEV_', false);endefine('_PS_MODE_DEV_', true);. - 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.logou/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
- Connectez-vous a phpMyAdmin (depuis votre panneau d’hebergement).
- Selectionnez la base de donnees de votre boutique PrestaShop.
- Cliquez sur Tout cocher en bas de la liste des tables.
- Dans le menu deroulant “Pour la selection”, choisissez Verifier la table.
- phpMyAdmin affichera le statut de chaque table. Les tables marquees
crashedoucorruptsont 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
- Connectez-vous a phpMyAdmin.
- Selectionnez votre base de donnees PrestaShop.
- Cochez les tables qui posent probleme (ou cochez-les toutes par securite).
- Dans le menu deroulant “Pour la selection”, choisissez Reparer la table.
- phpMyAdmin executera un
REPAIR TABLEsur chaque table selectionnee. - 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 :
- Selectionnez toutes les tables.
- Dans le menu deroulant, choisissez Optimiser la table.
- 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 :
| Table | Contenu | Action recommandee |
|---|---|---|
ps_log | Logs du back-office | Supprimez les entrees de plus de 3 mois |
ps_connections | Connexions visiteurs | Supprimez les entrees de plus de 1 mois |
ps_connections_page | Pages vues par connexion | Supprimez les entrees de plus de 1 mois |
ps_guest | Visiteurs anonymes | Supprimez les entrees de plus de 3 mois |
ps_cart | Paniers | Supprimez les paniers de plus de 3 mois sans commande associee |
ps_mail | Historique emails | Supprimez 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
| Module | Fonctionnalites | Prix | Reparation tables | Optimisation | Nettoyage | Backup integre |
|---|---|---|---|---|---|---|
| Database Repair | Reparation et verification des tables corrompues | Gratuit | Oui | Oui | Non | Non |
| Advanced Database Repair | Reparation avancee avec sauvegarde automatique | Gratuit | Oui | Oui | Non | Oui |
| PrestaShop Database Cleaner | Nettoyage et optimisation de la base | Payant (~30-50 EUR) | Non | Oui | Oui | Non |
| DB Doctor | Diagnostic complet + reparation + optimisation | Payant (~50-80 EUR) | Oui | Oui | Oui | Oui |
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
- Telechargez le module depuis PrestaShop Addons ou le site de l’editeur.
- Dans le back-office, allez dans Modules > Gestionnaire de modules.
- Cliquez sur Installer un module et selectionnez le fichier ZIP.
- 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 :
- Verifiez que MySQL tourne : contactez votre hebergeur ou executez
systemctl status mysqlen SSH. - Verifiez les identifiants dans
app/config/parameters.php(PS 1.7/8) ouconfig/settings.inc.php(PS 1.6). - 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 :
- Si c’est une table de module : reinstallez le module. L’installeur recree les tables manquantes.
- 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 :
- 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.
- Nettoyage regulier : une fois par mois, nettoyez les tables de logs et de connexions.
- Mises a jour : gardez PrestaShop et vos modules a jour. Les correctifs de securite corrigent aussi des bugs de base de donnees.
- 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.
- 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