MySQLデータベースの文字エンコーディングを変更する

MySQLデータベースの文字エンコーディングを変更する

これで、アプリケーション全体が UTF-8 を処理できるようになり、アーキテクチャ全体のエンコードに関しては UTF-8 が選択肢になります。最後のステップは、MySQL データベースのエンコードを変更することです。

もちろん、ALTER TABLE db_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;各テーブルを適切な UTF8 エンコーディングに変換できるはずですが、他に何かする必要があるでしょうか? my.cnf 構成ファイルも変更する必要があると思います。

答え1

これをコピーしてターミナルに貼り付け、Mysql サーバーを再起動してデフォルトの文字エンコーディングを変更します。

cat << EOF > /etc/mysql/conf.d/utf8.cnf

[mysqld]
default-character-set=utf8

[client]
default-character-set=utf8

EOF

答え2

次の SQL ステートメントを使用して、クライアント アプリケーションから文字セットを設定する必要もあります。

SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

関連情報