Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL VARCHAR(255) UTF8 est trop long pour la clé, mais la longueur maximale est de 1000 octets

Si vous utilisez utf8mb4 et que vous avez des index uniques sur des colonnes varchar de plus de 191 caractères, vous devrez activer innodb_large_prefix pour autoriser des colonnes plus grandes dans les index, car utf8mb4 nécessite plus d'espace de stockage que utf8 ou latin1 . Ajoutez ce qui suit à votre fichier my.cnf.

[mysqld]
innodb_file_format=barracuda
innodb_file_per_table=1
innodb_large_prefix=1
init_connect='SET collation_connection = utf8mb4_unicode_ci; SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

Plus d'informations sur le pourquoi et l'avenir de la Documentation MySQL 5.7 :

Pour résumer, la limite n'est là que pour la compatibilité et sera augmentée dans les futures versions.