Cette erreur se produit généralement lors de la création d’une table dans MariaDB, lorsque la longueur d’une clé exède 767 octets. Cela peut être dû au fait que vous utilisez un jeu de caractères utf8mb4 qui utilise 4 octets par caractère, ce qui peut facilement dépasser la limite de 767 octets pour une clé.
Voici comment vous pouvez résoudre ce problème:
1. Si vous n’avez pas besoin de caractères spéciaux, vous pouvez changer le jeu de caractères à utf8 qui utilise 3 octets par caractère. Cependant, cela pourrait ne pas être une option si vous avez besoin de caractères spéciaux.
1. Vous pouvez également réduire la longueur de la clé. Cela nécessite de modifier votre schéma de base de données, ce qui n’est peut-être pas idéal.
1. Modifiez les paramètres de votre serveur MariaDB. Vous pouvez augmenter la longueur maximale des clés en modifiant la valeur innodb_large_prefix. Pour ce faire, vous pouvez ajouter les lignes suivantes à votre fichier de configuration MariaDB (my.cnf ou my.ini selon votre système d’exploitation):
\`\`\`sql [mysqld] innodb_file_format=Barracuda innodb_file_per\_table=1 innodb_large_prefix=1 \`\`\` et redémarrez votre serveur MariaDB.1. Enfin, si vous utilisez MariaDB 10.2.2 ou une version ultérieure, vous pouvez aussi simplement définir la directive innodb_default_row\_format à DYNAMIC ou COMPRESSED pour obtenir la plus grande longueur de clé possible sans avoir à modifier quoi que ce soit d’autre.
N’oubliez pas de faire un backup de votre base de données avant d’apporter des modifications majeures à votre configuration !