報錯:連接數據庫失敗
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>