1. consider upgrading MySQL client
描述:因mysql5版本过度到8版本后,访问要求升级mysql的客户端
原因:mysql在升级后,对加密算法部分做了调整导致。
对策: 将mysql的server配置从新安装调整,兼容Legancy。
如果通过以上形式还不能连接,则在mysql命令行使用
》 alter user [username] identified with mysql_native_password by '[password]'; //修改为支持mysql5版本的加密方式(mysql_native_password)
》flush privileges;
2.Unknown initial character set index '255' received from server. Initial client character set can be forced via the 'characterEncoding' property.
原因:1. 8版本:jdbc访问使用的字符集编码和目前数据库的编码格式不一致 mysql高版本使用 utf8mb4 4位字节码,比以前3位的多了一位。
>show global variables like 'character%';
2. 如果character看到的是latin,则将编码集变为utf8.
>set character_set_database=utf8;
解决方案:驱动升级最少为5.1.44 及以上
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.44</version> <scope>${dependency.scope}</scope> </dependency>
3. 在使用mysql 8 版本驱动时,会有ssl的异常,需要在jdbc链接中设置 useSSL=false。
4. 在mysql驱动8-workbench中,如果访问低版本的mysqlDB,则可能会出现。 AccessDenied admin@IP (Using Password No)。例如tiDB,要改用低版本驱动。