今天登陸碼雲,看到4天前有人評論說連不上數據庫,具體描述以下 :java
本地項目運行後報錯,百度後說是mybatis版本與tomcat不兼容,而後把mybatis的版本換成了3.4.4。以後運行項目就一直提示org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!,檢查了不少次jdbc的配置,實在找不到問題所在,有遇到我這種狀況的麼?
用navicat鏈接本地數據庫都是正常的。mysql
看到這個錯誤信息,第一時間感受就是數據庫信息錯了,因此我直接回復問他:在修改mybatis版本在以前是報什麼錯誤呢?spring
而後叫他檢查下jeesns.properties中數據庫配置信息是否正確。sql
我以爲確定是數據庫信息錯了,而後就過了。數據庫
而後下午我用公司的電腦想運行一下jeesns,修復下xss腳本注入漏洞,但是發現數據庫信息都正常,可是就是提示連不上數據庫,而後各類百度,無非就2種狀況,一是數據庫信息錯了,二是數據庫驅動版本不對。tomcat
忽然想起來,公司的電腦我安裝的mysql版本是比較高的,而後看了下mysql版本,直接搜索mysql8.0 java驅動,發現8.0.11版本的mysql的驅動鏈接方式不同,以前咱們這邊用的是com.mysql.jdbc.Driver,而8.0.11要用com.mysql.cj.jdbc.Driver,此外mysql8.0是不須要創建ssl鏈接的,因此須要關閉掉,最後須要設置CST。mybatis
使用mysql8.0.11版本的話,須要作如下修改。xss
驅動修改爲8.0.11的ui
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency>
再修改jeesns.properties前面兩行爲url
jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/jeesns?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowMultiQueries=true
這樣就能夠鏈接數據庫了。