utf8mb4を使用していて、長さが191文字を超えるvarchar列に一意のインデックスがある場合、インデックスに大きな列を許可するには、innodb_large_prefixをオンにする必要があります。utf8mb4はutf8またはlatin1よりも多くのストレージスペースを必要とするためです。 。 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
MySQL5.7ドキュメントからの理由と将来に関する詳細情報a> :
要約すると、制限は互換性のためだけにあり、将来のバージョンで増加する予定です。