Wymaga czegoś więcej niż tylko tych dwóch ustawień...
SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_file_per_table=ON;
SET GLOBAL innodb_large_prefix=1;
logout & login (to get the global values);
ALTER TABLE tbl ROW_FORMAT=DYNAMIC; -- or COMPRESSED
Być może wystarczy dodać ROW_FORMAT=...
do Twojego CREATE TABLE
.
Te instrukcje są potrzebne dla 5.6.3 do 5.7.7. Począwszy od 5.7.7, system domyślnie obsługuje większe pola.
Alternatywnie możesz użyć indeksu „prefiksu”:
INDEX(column(191))
(Ale indeksowanie prefiksów jest pod wieloma względami wadliwe).
„Jeśli serwer później utworzy wyższy format tabeli, innodb_file_format_max zostanie ustawiony na tę wartość” oznacza, że to ustawienie nie stanowi problemu.