MariaDB / Mysql : attention à l’utf8mb4

Bonjour les gens !

Sur mon installation serveur toute fraîche en ubuntu 16.04, j'ai eu ce message d'erreur :

Index column size too large. The maximum column size is 767 bytes.

Après quelques recherches, il apparaît que c'est lié à la présence de colonnes VARCHAR uniques dans la base de données, avec un max-lenght supérieur à 191. En effet, utf8mb4 contrairement à utf8 code chaque caractère sur 4 bytes au lieu de 3, ce qui fait tomber la limite des VARCHAR de 255 à 191.

Si vous et vos utilisateurs dans les commentaires utilisent une langue européenne, l'utf8 simple vous suffira. C'est mon cas. Il suffit donc de changer ceci dans la config de MariaDB (fichier /etc/mysql/mariadb.conf.d/50-server.cnf) :

character-set-server = utf8
collation-server = utf8_unicode_ci

(remplacez les anciennes valeurs par les nouvelles). Et dans le fichier /etc/mysql/mariadb.conf.d/50-client.cnf, de la même façon :

default-character-set = utf8

Et voilà, le problème est résolu !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.