[报错解决]Communications link failure

报错

主机IDEA项目连接虚拟机的数据库报错。

主要报错信息有:

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.

.........

先排查基本问题。端口开启且没被占用、防火墙关闭了、数据库开启了,IDEA导出的Jar包在虚拟机中也没问题,所以只能是主机IDEA这边的项目代码或者是IDEA本身的问题。

整段报错信息有14万字。

只帖取部分具体报错信息。

具体报错:

2024-05-05 14:24:04.558 ERROR 4900 --- main com.alibaba.druid.pool.DruidDataSource : init datasource error, url: jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC

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.

at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:148) ~druid-1.0.28.jar:1.0.28

at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:785) ~druid-1.0.28.jar:1.0.28

at com.alibaba.druid.filter.FilterEventAdapter.connection_connect(FilterEventAdapter.java:38) ~druid-1.0.28.jar:1.0.28

at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:142) ~druid-1.0.28.jar:1.0.28

at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:785) ~druid-1.0.28.jar:1.0.28

at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:142) ~druid-1.0.28.jar:1.0.28

at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:211) ~druid-1.0.28.jar:1.0.28

at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:142) ~druid-1.0.28.jar:1.0.28

at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1454) ~druid-1.0.28.jar:1.0.28

at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1516) ~druid-1.0.28.jar:1.0.28

具体报错:

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

at jdk.internal.reflect.GeneratedConstructorAccessor42.newInstance(Unknown Source) ~na:na

at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~na:na

at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~na:na

at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~na:na

at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:91) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.mysql.cj.NativeSession.connect(NativeSession.java:152) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:955) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825) ~mysql-connector-java-8.0.16.jar:8.0.16

... 14 common frames omitted

Caused by: java.net.ConnectException: Connection refused: connect

at java.base/sun.nio.ch.Net.connect0(Native Method) ~na:na

at java.base/sun.nio.ch.Net.connect(Net.java:579) ~na:na

at java.base/sun.nio.ch.Net.connect(Net.java:568) ~na:na

at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588) ~na:na

at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~na:na

at java.base/java.net.Socket.connect(Socket.java:633) ~na:na

at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155) ~mysql-connector-java-8.0.16.jar:8.0.16

at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65) ~mysql-connector-java-8.0.16.jar:8.0.16

... 17 common frames omitted

进程已结束,退出代码1

解决

1.找到项目的application-dev.yml配置文件,找到url

复制代码
url: jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC

把其中的localhost修改为MySQL所在服务器的ip地址

修改完毕后如下图:

2.同样是application-dev.yml配置文件,找到username和password

复制代码
username: root
password:

把数据库密码填入password

修改完毕后如下图:

相关推荐
街头便衣11 分钟前
OpenRouter周榜复算:164万亿token,输出2.55%,DeepSeek账单占1.4%
android·java·开发语言·人工智能·语言模型·开源
mister_guo15 分钟前
Spring Boot 配置文件读取的几种方式:用法、原理与常见误区
java·spring boot
余槐i16 分钟前
虚拟线程上线后吞吐反而掉了:Spring Boot 3 里 synchronized 锁住载体线程的定位与修复
java·spring boot·性能优化·虚拟线程·jdk 21
要开心吖ZSH19 分钟前
DDD(领域驱动设计)篇三:实战对照——同一个订单业务,两种架构怎么写
java·架构·领域模型·ddd·领域驱动设计·设计思想
wangchunyu11410 小时前
JAVA CompletableFuture异步编程实战
java·开发语言·python
paopaokaka_luck11 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
Thomas.Sir11 小时前
第9课:SpringBoot4.x Web开发基础:WebMvc自动配置、静态资源、请求参数接收
java·spring boot
程序 代码狂人11 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
2501_9445215912 小时前
Deepmerge 跨端三方库仓颉适配全流程
java·python·eclipse·github
lzhdim12 小时前
100条常用SQL语句
数据库·sql·mysql·mybatis