sql >> Databasteknik >  >> RDS >> Mysql

MySQL VARCHAR(255) UTF8 är för lång för nyckel, men maxlängden är 1000 byte

Om du använder utf8mb4, och du har unika index på varchar-kolumner som är längre än 191 tecken, måste du aktivera innodb_large_prefix för att tillåta större kolumner i index, eftersom utf8mb4 kräver mer lagringsutrymme än utf8 eller latin1 . Lägg till följande i din my.cnf-fil.

[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

Mer information om varför och framtiden från MySQL 5.7-dokumentation :

Sammanfattningsvis finns gränsen bara för kompatibilitet och kommer att ökas i framtida versioner.



  1. Hur man konverterar DateTime till VarChar

  2. hitta i set i laravel ? exempel

  3. mysql like%-frågan är långsam med fulltextindex

  4. Hämta värden från databasen med PHP PDO och uppdatera indata till kontrollerad