WordPressでプラグイン独自のデータベースが作られるときに「Index column size too large」と言われた時の対処法

プラグインに限った話ではないのですが、WordPressで独自のテーブルを作ろうとした時に「Index column size too large」というエラーが出て、テーブルが作れない場合があります。

MySQL(InnoDB)では、ひとつのカラムのキープレフィックスの最大値が767バイトという制限があるらしく、これに引っかかると上記のようなErrorが出るそう。

 

ということなので、対応。

設定の変更

まずは、my.cnfの見直し。以下のように設定変更。

テーブル作成クエリの見直し

クエリの最後に’ROW_FORMAT=DYNAMIC’を追加。
今回はNginx Cache ControllerのCREATE TABLEの時に発生したので、該当箇所を変更。

とりあえず、これでErrorはなくなり、無事にテーブル作成できました。
これを行う場合、プラグインの中を編集してしまうので、自己責任でお願いします。m(__)m

 

参考
MySQL(InnoDB) で “Index column size too large. The maximum column size is 767 bytes.” いわれるときの対策