spring基于XML连接mysql配置问题

我不知道大家有没有遇到这个错误:
Connections could not be acquired from the underlying database!
The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
伴随的现象是spring连接数据库的时候,代码运行很长时间,并且停滞,最后mysql连不上。
其实造成这个的原因如下:
1.驱动配置有误:driver=com.mysql.cj.jdbc.Driver
2.数据库连接地址有误:url=jdbc:mysql://localhost:3306/test?3useUnicode=true&characterEncoding=utf8
3.密码或帐号有误:username=root
password=root
4.数据库未启动或无权访问
5.mysql root没有远程访问的权限,需要增加权限,增加权限的步骤如下:
进入mysql数据库:
grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;
flush privileges;
注意:其实最有可能出问题的是数据库的连接地址
这是我的,希望大家参考下

jdbc:mysql://localhost:3306/eesy?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8

注:&在XML文件中配置的时候写,如果在java类文件中就直接是&即可。理论上& = &。
其实也很明显
一个是加上serverTimezone=UTC&
另一个是加上useUnicode=true&characterEncoding=utf8
这个问题耽误了不少时间,希望能帮助大家,同时自己也做一个笔记。

补充:
说来奇怪 我之前数据库就能连接,后期用ssm之后就不能用了。大家看下报错是否有类似的问题;
Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!
A ResourcePool could not acquire a resource from its primary factory or source.
相信基本根据这些问题,大家应该对问题有个一个直观的认识。错误中提到最多的就是数据库!!!
是的Maven包中的mysql-connector-java包的版本和mysql版本相差太远。我之前用的5.1.6,java版本是9.0的。之后我换成8.0.12之后,就不会报错啦。这边附上mysql-connector-java包的版本和mysql版本对应关系。
在这里插入图片描述
官网文档地址:

https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-versions.html (Connector/J Versions 5.1)

https://dev.mysql.com/doc/connector-j/6.0/en/connector-j-versions.html (Connector/J Versions 6.0)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值