Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection

報錯:連接數據庫失敗

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章