一、说明
产生此笔记的原因,在于今天对某个 JFinal 项目进行数据库的升级,结果导致了如下问题:
(注:下图为从网上所找,因问题处理后,不想再返回去截图了)
二、处理过程:
1、原系统中的数据库连接说明:
数据库一版本:mysql 5.5.62
数据库二版本:mysql 5.5以后(第三方应用的,不能做版本变更处理)
数据库连接的jar包:mysql-connector-java-5.1.20-bin.jar
连接池jar包:druid-1.0.5.jar
由于两个数据库的大版本一致,因此驱动使用同一个。但在其中一个数据库升级后,导致两个数据库的驱动版本不一致。
2、升级后的信息
数据库一版本:mysql 8.0.19
数据库二版本:mysql 5.5以后(第三方应用的,不能做版本变更处理)
数据库连接的jar包:mysql-connector-java-8.0.19.jar
连接池jar包:druid-1.1.16.jar
修改有关连接串后,数据库一可以正常连接;但数据库二无法连接,因为旧版本的数据库不支持cache_sha_password的账号密码加密方式,从而导致了上述错误。
3、解决办法
数据库的版本当然不能变了。仍然保持一个8.0.19版本,另一个为5.5版本。
数据库连接的jar包,使用两个:mysql-connector-java-8.0.19.jar 和 数据库连接的jar包:mysql-connector-java-5.1.20-bin.jar
连接池jar包:druid-1.1.16.jar
关键:增加driverClass设置
连接8.0.19的数据库时,
driverClassName1=com.mysql.cj.jdbc.Driver
连接5.5的数据库时,
driverClassName2=com.mysql.jdbc.Driver
这样数据库连接时,会去找相应的驱动jar包,就可以了。