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)なので、文字コード順にソートを行います。
こちらもおススメ