[MySQL]エラー「1253 COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'utf8mb4'」が出たとき

カテゴリ: MySQL | タグ: , , , ,

MySQLを使っていて、データベースをcreate databaseしたり、データベースに接続する時に、下記のエラーが出ることがあります。

1253 COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'utf8mb4'

原因

これは、DB作成時のcharasetをutf8mb4と、mb4系の設定を行っているにもかかわらず、utf8_unicode_ciを指定していているためです。

解決方法

CHARACTER SETが'utf8mb4'で作業したい場合は、COLLATIONにutf8mb4_unicode_ciを指定すればよいです。

逆にCOLLATIONにutf8_unicode_ciを使いたかったのであれば、charasetはutf8の指定が正しいです。

そもそもCOLLATIONって何?

COLLATIONというのは、order byなどでデータを並び替えるときに、文字列データの大小関係を判定するための、照合順序を規定するものです。

utf8mb4_unicode_ciを指定した場合は、最後にci(case insencitive)がついているので、大文字と小文字を同じ文字として扱います。(これがデフォルトのふるまいです)

COLLATION=utf8mb4_unicodeを指定すると、大文字と小文字を別の文字とみなします。また、utf8mb4_binは、bin(binary)なので、文字コード順にソートを行います。


Amazonでおトクに買い物する方法
AmazonチャージでポイントGET


Amazonは買いもの前にAmazonギフト券をチャージしてポイントをゲットしないと損!

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です