MySQLでSpecified key was too longが発生したら

MySQLでダンプファイルをインポートしようとしたり、Rails等でDB migrationした時にエラーが発生し対処したので、記録として残しておきます。

エラーの内容

今回対象となるエラーは、

ERROR 1071 (42000) at line XXXX: Specified key was too long; max key length is 767 bytes

あるいは、

ERROR 1709 (HY000) at line XXXX: Index column size too large. The maximum column size is 767 bytes.

になります。

対応

MySQLのパラメータに以下を追加すれば解消することが多いようです。この方法で100%解決するというわけではない点は注意です。

[mysqld]
innodb_large_prefix
innodb_file_per_table
innodb_file_format=Barracuda

同様のエラーが発生した場合に参考になれば。