帮学弟调试项目过程中发现的一个问题,Java程序在连接mysql时不同版本的mysql,连接信息的配置以及引入的驱动jar的不同带来的连接问题。
他自己安装的mysql8.0,远程控制他时候没注意查看版本信息,导致一路从连接驱动版本再到c3p0jar排除,最终定位问题。有点想当然了,栽在了新手村的路上,特此记录
问题描述:
使用的是c3p0连接池
org.apache.ibatis.session.defaults.DefaultSqlSession@xxxxxx] was not registered for synchronization because synchronization is not active
and jdbc连接失败,那意思就是
JDBC Connection 忘了是啥了…
解决:
针对不同mysql版本配置不同的连接信息
mysql5.X
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/sqylpt?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong
jdbc.username=root
jdbc.password=root
mysql8.X
# 驱动名称不同。不同的包
jdbc.driver=com.mysql.cj.jdbc.Driver
# 配置时区,编码等信息
jdbc.url=jdbc:mysql://localhost:3306/sqylpt?
useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
jdbc.username=root
jdbc.password=root
结语:对症下药,方可快速解决。不细心就需要很多时间去排错