Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL VARCHAR(255) UTF8 è troppo lungo per la chiave, ma la lunghezza massima è 1000 byte

Se stai usando utf8mb4 e hai indici univoci su colonne varchar di lunghezza superiore a 191 caratteri, dovrai attivare innodb_large_prefix per consentire colonne più grandi negli indici, perché utf8mb4 richiede più spazio di archiviazione di utf8 o latin1 . Aggiungi quanto segue al tuo file 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

Maggiori informazioni sul perché e sul futuro dalla Documentazione MySQL 5.7 :

Per riassumere, il limite esiste solo per la compatibilità e verrà aumentato nelle versioni future.