my.cnf で MySQL のデフォルトの文字セットを UTF-8 に変更しますか? 質問する

my.cnf で MySQL のデフォルトの文字セットを UTF-8 に変更しますか? 質問する

現在、PHPで次のコマンドを使用して文字セットを設定しています。UTF-8私たちのアプリケーションでは。

これは少しオーバーヘッドがかかるため、これを MySQL のデフォルト設定として設定したいと思います。これを /etc/my.cnf または別の場所で行うことができますか?

SET NAMES 'utf8'
SET CHARACTER SET utf8

/etc/my.cnf でデフォルトの文字セットを探しましたが、文字セットに関する情報は何も見つかりません。

この時点で、MySQL の文字セットと照合変数を UTF-8 に設定するために次の操作を実行しました。

skip-character-set-client-handshake
character_set_client=utf8
character_set_server=utf8

これは正しい対処方法でしょうか?

ベストアンサー1

デフォルトをUTF-8に設定するには、my.cnf/my.iniに次のコードを追加します。

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4


[mysqld]
collation-server = utf8mb4_unicode_520_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4

既存の DB の文字セットを変更したい場合はお知らせください。質問では直接指定されていなかったので、それが目的かどうかはわかりません。

編集: はUTF-8 のサブセットにすぎないため、元の回答でutf8は に置き換えました。MySQL と MariaDB はどちらも UTF-8 を呼び出します。utf8mb4utf8utf8mb4

おすすめ記事