PrestaShop

Erreur MySQL 1071 sur PrestaShop : moteur InnoDB et index

L'erreur MySQL 1071 « Specified key was too long » bloque l'installation ou une mise à jour de PrestaShop. Diagnostic, passage en InnoDB et précautions.

L’erreur MySQL 1071 « Specified key was too long » apparaît quand un index dépasse la longueur maximale autorisée par le moteur de stockage. Sur PrestaShop, la solution la plus sûre consiste à utiliser le moteur InnoDB. Sur un hébergement mutualisé ancien, il faut souvent changer d’offre ou d’hébergeur, car l’ancien moteur MyISAM ne suffit pas.

Ce que dit l’erreur

Le message signifie qu’un index est trop long pour le moteur utilisé par la table. La limite historique de MyISAM est de 1000 octets par index. Une colonne longue en utf8mb4 peut la dépasser, car chaque caractère peut occuper quatre octets.

Diagnostic en quatre étapes

1. Relevez le moteur de chaque table. Dans un outil d’administration MySQL, exécutez :

SELECT TABLE_NAME, ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'nom_de_votre_base';

Remplacez nom_de_votre_base par le nom de votre base. Si des tables utilisent encore MyISAM, c’est probablement la cause.

2. Relevez le mode SQL. Le mode strict peut aussi provoquer des refus :

SELECT @@GLOBAL.sql_mode, @@SESSION.sql_mode;

3. Vérifiez la version du serveur. Une version ancienne de MySQL ou MariaDB limite les index plus strictement. Votre hébergeur peut confirmer la version utilisée. Pour la configuration recommandée, voyez notre article sur les configurations de serveur pour PrestaShop.

4. Demandez à l’hébergeur le moteur par défaut. Posez trois questions : quel moteur est utilisé par défaut, si InnoDB est disponible, et si une version plus récente de MySQL ou MariaDB est proposée.

Solution recommandée : passer en InnoDB

Passez les tables concernées en InnoDB. Exemple pour une table, à adapter :

ALTER TABLE ps_nom_de_table ENGINE=InnoDB;

Faites cette opération sur une copie de la base, puis sur la base réelle après une sauvegarde complète. Ne modifiez pas les index du schéma PrestaShop vous-même : demandez l’aide de votre hébergeur ou d’un développeur.

Autres pistes

Quand cette erreur apparaît

Questions fréquentes

Faut-il désactiver le mode strict pour installer PrestaShop ?

Ce n’est pas recommandé. Mieux vaut régler le moteur ou la longueur de l’index. Le mode strict ne doit être désactivé que comme solution temporaire, avec une sauvegarde.

InnoDB est-il déjà utilisé par défaut ?

Sur la plupart des hébergements payants récents, oui. Vérifiez-le avec la requête de diagnostic ci-dessus.

Dois-je changer d’hébergeur ?

Si l’hébergement n’autorise pas InnoDB, ou n’offre pas une version suffisante de MySQL ou MariaDB, oui. Demandez d’abord au support quel moteur est utilisé par défaut.

Sources

Agence web PrestaShop & WordPress

Agence web spécialisée PrestaShop et WordPress : création, maintenance, sécurité, performance et référencement. Nos tutoriels sont issus de nos interventions sur de vraies boutiques.

L'agence Genisoft → LinkedIn →