latin_1
からに変換する必要があるデータベースが 1 つありますutf8
。この変換は問題ありません。私のステージング環境では、my.cnf に次の行を追加すると、すべてが正しく機能します (この SO の質問で提案されているように):
[client]
default-character-set = utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
そして、適切な ALTER ステートメントを実行します。
ALTER TABLE {row} CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
残念ながら、このデータベースは MySQL サーバーだけにあるわけではありません。サーバーは、まだエンコーディングを使用しているいくつかのデータベースと共有されておりlatin_1
、これらのデータベースは実際には必要ありませんutf8
。異なるエンコーディングで同じサーバーを共有できますか? これを行うには、デフォルトの構成を変更する必要がありますか? それとも、これはトラブルを求めていますか?