JFinal项目中,如何连接两个不同版本的mysql数据库?

一、说明

产生此笔记的原因,在于今天对某个 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包,就可以了。

posted @   三晋一枝发  阅读(684)  评论(1编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示