问题描述
Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
错误如下:
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 496 milliseconds ago. The last packet sent successfully to the server was 493 milliseconds ago.
### The error may exist in com/xifengshi/dao/UserMapper.xml
### The error may involve com.xifengshi.dao.UserMapper.getUserList
### The error occurred while executing a query
### Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 496 milliseconds ago. The last packet sent successfully to the server was 493 milliseconds ago.
原因分析:
mybatis-config.xml文件MySQL连接池的url错误:
> <dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>
MySQL5.7之后的版本需要加上useSSL=false,5.7以及之前的版本会默认为false.
有兴趣的可以去看看这篇文章https://blog.csdn.net/qq_42782063/article/details/90714658
解决方案:
useSSL=true改成useSSL=false即可
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>