本文讨论了自8.0以来发生的更改。已列出供您参考的要点之一是:
字符集支持
重要更改:默认字符集已从latin1更改为utf8mb4。这些系统变量会受到影响:
character_set_server和character_set_database系统变量的默认值已从 更改为 。
在collat??ion_server的和collat??ion_database查看系统变量的缺省值已经从 到 。
因此,除非指定了明确的字符集和排序规则,否则新对象的默认字符集和排序规则会与以前不同。这包括数据库和其中的对象,例如表,视图和存储的程序。
保留先前默认值的一种方法是使用my.cnf
文件中的以下行启动服务器:
[MysqLd]
character_set_server=latin1
collation_server=latin1_swedish_ci
由于您正在运行docker,因此另一个选择是将这些配置选项指定为docker run命令的命令行参数。例如:
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
在客户端上,如果您要进行更改-希望这些更改就足够了:
要将4字节UTF-8字符集与Connector / J一起使用,请使用配置MysqL服务器character_set_server=utf8mb4
,并保留characterEncoding
Connector / J连接字符串的位置。
然后,Connector / J将自动检测UTF-8
设置
希望这可以帮助!