Cela nécessite plus que ces deux paramètres...
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
Peut-être que tout ce dont vous avez besoin est d'ajouter ROW_FORMAT=...
à votre CREATE TABLE
.
Ces instructions sont nécessaires pour les versions 5.6.3 à 5.7.7. À partir de la version 5.7.7, le système gère correctement par défaut les champs plus grands.
Vous pouvez également utiliser un index "préfixe" :
INDEX(column(191))
(Mais l'indexation des préfixes est défectueuse à bien des égards.)
"Si le serveur crée ultérieurement un format de table supérieur, innodb_file_format_max est défini sur cette valeur" implique que ce paramètre n'est pas un problème.