前言
之前在docker上部署项目时发现个问题:在本地运行时一切正常,打包部署到docker上的tomcat时一直报错无法连接数据库,期初认为是数据库远程权限的问题,各种方法试了都不管用,后来搜索过程中看到有帖子说可能是jdbc版本和mysql版本的问题,后来就试了下果然是这个问题。
报错代码
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
测试
用3个变量来测试对应版本的影响,结果如下:
jdk1.8 连接驱动5.1.26 mysql5.7 可以 jdk1.8 连接驱动5.1.26 mysql8.x 不行 jdk1.8 连接驱动8.0.12 mysql5.7 可以 jdk1.8 连接驱动8.0.12 mysql8.x 可以 jdk11 连接驱动5.1.26 mysql5.7 可以 jdk11 连接驱动5.1.26 mysql8.x 不行 jdk11 连接驱动8.0.12 mysql5.7 可以 jdk11 连接驱动8.0.12 mysql8.x 可以
总结
jdk1.8和jdk11对连接数据库基本没有影响,连接驱动 8.x版本可以连接mysql5.7和mysql8,5.x的驱动无法连接mysql8,测试结果仅供参考,一切以实际测试结果为准。 附上官方的说明,>>点击查看原文
强烈建议MySQL Connector/J 8.0与MySQL Server 8.0、5.7和5.6一起使用。请升级到MySQL连接器/J 8.0。 当使用某些密码套件时,Connector/J5.1需要JRE 1.8.x才能使用SSL/TLS连接到MySQL 5.6,5.7和8.0。
|