今天写Java to mysql 工程的时候遇到一个问题:
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
谷歌翻译一下:
com.mysql.cj.jdbc.exceptions.CommunicationsException:通信链接失败
最后一个成功发送到服务器的数据包是 0 毫秒前。 驱动程序没有收到来自服务器的任何数据包。
不管怎么复查代码和虚拟机,愣是一点问题都没发现。
后来查CSDN,大佬们的方法试了一遍,什么拉jar包啊,shift+ctrl+F8取消打勾啊,等等等等完全没用。
那最后是怎么解决的呢?
在datasource.properties里的
url
的后面加上一句话:
&useSSL=false&serverTimezone=Asia/Shanghai
解决:com.
mysql
.cj.jdbc.exceptions.CommunicationsException: Communications link failure
解决:Caused by:
java
.io.EOFException: SSL peer shut down incorrectly
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
最后
一次
成功
发送
到
服务器
的
数据包
是0
毫秒
前
。
驱动程序
没有
从
服务器
接收任何
数据包
。
最近用Docer拉起了
一个
MySql
数据库容器和
一个
java
程序容器,并从
java
程序中使用root用户来链接
MySql
, 但是发现
java
程序一直在重启,使用docker logs命令查看
java
容器的日志发现后台一直报下面的jdbc的异常
2022-04-09 06:49:39.425 INFO 1 --- [main] com.zaxxer.hikari.HikariDataSource : HikariCP - Starting...
2022-04-09 06:49:43
问题语句:Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.(翻译:
通信链...
我试图构建
一个
简单的
Java
EE webb应用程序,为了连接到数据库,我首先在Maven中添加了JDBC
驱动程序
:
mysql
mysql
-connector-
java
8.0.22当我在Intellij中测试连接时,在此处输入图像说明。但当我运行代码时,它会抛出以下错误:com.
mysql
.cj.jdbc.exceptions.Communicationsexception:通信链路故障
最后
一个
成功
...
import
java
.io.BufferedReader;import
java
.io.IOException;import
java
.io.InputStreamReader;import
java
.net.URL;import
java
.sql.DriverManager;import
java
.sql.SQLException;import
java
.util.regex.Matcher;...
在JDBC URL中使用autoReconnect属性,实际测试时使用了autoReconnect=true&failOverReadOnly=false,网上所说的只对
mysql
4之
前
的版本有效。重启生效,需要同时修改这两个参数。