絵文字に対応したいなどの理由で utf8mb4 を使う。 ただ、utf8mb4 に設定するだけだと以前は問題があった。 MySQL 5.7.9 以降では解決されたので、その話をまとめる。
![MySQL(InnoDB) で charset を utf8mb4 にする注意点の現在](https://cdn-ak-scissors.b.st-hatena.com/image/square/78b9f2fe150f5d5ef203ac3bb7f820c500078989/height=288;version=1;width=512/https%3A%2F%2Fdev.to%2Fsocial_previews%2Farticle%2F16110.png)
ActiveRecordからutf8mb4を扱えない主な理由 ActiveRecordのstring型カラムがvarchar(255)で定義されるので、utf8mb4ではインデックスのキープレフィックスが767byteを超えてしまう。 ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes この問題をMySQLの設定とRailsへのパッチで解決する。 MySQLの設定 文字コードをutf8mb4で運用するために、インデックスのキープレフィックスを拡張する。 innodb_large_prefixをenableにする 1を有効にするために、innodb_file_formatをBarracudaにする 1を有効にするために、innodb_file_per_tableをenableにする innod
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く