今天學習mybatis,遇到
MySQLNonTransientConnectionException: Could not create connection to database server
無法創建數據庫連接
第一步
網上查了一下,估計是mysql驅動包版本太低,我的mysql是8.0版本的,但是驅動依賴包卻是5.1.29的。
於是把mysql連接驅動包升級到8.0.11版本。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
這時候有可能已經解決了問題了,如果還會出現如下錯誤中的其中一個,就進入第二步。
1、Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver
.
或者
2、WARN: Establishing SSL connection without server's identity verification is not recommended
Error updating database. Cause: java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
第二步
第 1 個錯誤是因爲驅動類com.mysql.jdbc.Driver
的已經廢棄,現在應該用com.mysql.cj.jdbc.Driver
,在數據庫配置文件中修改一下即可。
代碼 <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
第 2 個錯誤需要添加SSL驗證,或者是因爲沒有時域,可以將
?serverTimezone=GMT%2B8&Unicode=true&characterEncoding=utf-8&useSSL=false
添加到數據庫連接的後面,表示不適用SSL驗證、數據集使用utf-8編碼、使用東八區的時間。
完整代碼如下
ps:在idea中,xml文件不可出現"&“符號,應該使用”&"來代替(注意&後面有分號)。