Java MySql连接器版本之间的默认字符集和排序规则连接是否已更改?

Java MySql连接器版本之间的默认字符集和排序规则连接是否已更改?,java,mysql,Java,Mysql,我们使用的是MySql版本5.7,所有的表\数据库都使用utf8\uUnicode\uCI。 在尝试将Java connector从5.1.38升级到最新版本(8.0.17)时,我们遇到了以下异常: java.sql.SQLException: Illegal mix of collations (utf8_bin,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '=' 比较两个连接器之间的会话变量,我们注意到CHARACH

我们使用的是MySql版本5.7,所有的表\数据库都使用utf8\uUnicode\uCI。 在尝试将Java connector从5.1.38升级到最新版本(8.0.17)时,我们遇到了以下异常:

java.sql.SQLException: Illegal mix of collations (utf8_bin,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '='
比较两个连接器之间的会话变量,我们注意到
CHARACHTER\u SET
COLLATION\u CONNECTION
在版本之间都已从
utf8\u bin
更改为
utf8mb4\u general\u ci

我知道我们可以添加到连接字符串
connectionCollation=utf8\u bin
,但这不是超级安全的,有没有办法强制MySql服务器根据数据库的默认排序规则\字符集设置默认排序规则?

您应该阅读其中解释了有关客户端和服务器字符集的所有内容

据我所知,客户端或连接字符集无法隐式使用数据库字符集。最接近这一点的是以下内容,它仍然需要客户端运行语句:

SET CHARACTER SET utf8mb4;
这隐式地将
字符集连接
排序规则连接
设置为当前默认数据库的连接

我不知道你为什么说在连接字符串中添加排序规则是不安全的。这不是它的目的吗