慣れないシステム(Rails製。旧システムのDBを利用してリプレース中なのでいろいろとややこしい)を触ってたら、
Mysql2::Error: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=':
という初めてのエラーに出くわした。
database.ymlに
collation: utf8_general_ci
を指定せずに進めてたからだった。
が、指定した後、テーブルを作り直しても何故か直らない…。
mysql> ALTER TABLE テーブル COLLATE utf8_general_ci;
mysql> show table status like "テーブル" \G;
Collation: utf8_general_ci
で手動で変更するもまだダメ。
mysql> show create table "テーブル";
`カラム` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
mysql> ALTER TABLE テーブル MODIFY COLUMN `カラム` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL;
カラムも変更したら行けた。
なぜ作り直してもダメだったのかは不明。