今天学习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文件不可出现"&“符号,应该使用”&"来代替(注意&后面有分号)。