sql >> Base de Datos >  >> RDS >> Mysql

MySQL VARCHAR (255) UTF8 es demasiado largo para la clave, pero la longitud máxima es de 1000 bytes

Si está utilizando utf8mb4 y tiene índices únicos en columnas varchar que tienen más de 191 caracteres de longitud, deberá activar innodb_large_prefix para permitir columnas más grandes en los índices, porque utf8mb4 requiere más espacio de almacenamiento que utf8 o latin1 . Agregue lo siguiente a su archivo 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

Más información sobre el porqué y el futuro en la documentación de MySQL 5.7 :

En resumen, el límite solo existe por compatibilidad y se incrementará en futuras versiones.