これ 8.0以降に発生した変更について説明します。参照できるようにリストされているポイントの1つは、次のとおりです。
その結果、明示的な文字セットと照合が指定されていない限り、新しいオブジェクトのデフォルトの文字セットと照合は以前とは異なります。これには、データベースと、テーブル、ビュー、ストアドプログラムなどのデータベース内のオブジェクトが含まれます。
以前のデフォルトを保持する1つの方法は、my.cnf
のこれらの行でサーバーを起動することです。 ファイル:
[mysqld]
character_set_server=latin1
collation_server=latin1_swedish_ci
dockerを実行しているため、もう1つのオプションは、これらの構成オプションをdockerrunコマンドのコマンドライン引数として指定することです。例:
docker run -d \
--network my-net \
-h mysqldb \
--name mysqldb \
-p 3306:3306 \
-e MYSQL_RANDOM_ROOT_PASSWORD=yes \
-e MYSQL_DATABASE=mydb \
-e MYSQL_USER=admin \
-e "MYSQL_PASSWORD=admin" \
mysql:8 --character-set-server=latin1 --collation-server=latin1_swedish_ci
クライアントで、変更を加えたい場合-うまくいけば、これらで十分です:
Connector / Jで4バイトのUTF-8文字セットを使用するには、MySQLサーバーをcharacter_set_server=utf8mb4
で構成します。 、characterEncoding
のままにします Connector/J接続文字列から。
その後、Connector/JはUTF-8
を自動検出します 設定
これがお役に立てば幸いです!