报错:连接数据库失败
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Sat Jun 06 15:50:05 CST 2020
There was an unexpected error (type=Internal Server Error, status=500).
nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. ### The error may exist in file [E:\ideaworkspaces\Test\Test03_mybatis\target\classes\mapper\HeroDao.xml] ### The error may involve com.ctgu.dao.HeroDao.queryById ### The error occurred while executing a query ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
可能的原因
1. 连接数据库的URL时区设置
- UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,比实际时间要早8小时。
- UTC + (+0800) = 本地(北京)时间
- 在URL后面加上serverTimezone=UTC属性
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF8&autoReconnect=true
2. mysql-connector-java版本
我用的是mysql8.0而老师用的是5.0版本,依赖版本需要和mysql版本一致
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- <version>5.1.44</version>-->
<!-- mysql版本-->
<!-- <version>8.0.11</version>-->
<version>8.0.20</version>
</dependency>