java 连接mysql时,报错Communications link failure

在尝试了更改超时时间、IP限制和校验驱动版本等方法后,针对启动项目时与MySQL交互报错的问题仍然存在。最终发现是3306端口受到干扰,通过修改my.ini文件将MySQL端口更改为3307并重启服务,成功解决了通讯链接失败的异常。在排查过程中,使用了`show full processlist`命令检查连接状态,并查看数据库错误日志辅助诊断。
摘要由CSDN通过智能技术生成

不一定适用所有情况,就像我也找了十几篇博客,都没有解决我的问题一样。只当做参考,拓展解决问题的思路。

项目启动,与mysql做交互时,一直报错。手动编写jdbc连接,也同样报错。在根据网上建议,更改超时时间、ip限制、校核驱动版本等操作后,仍然无效。报错信息如下:

com.mysql.jdbc.exceptions.jdbc4.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.
......
......
......

 

最终解决方式:更改mysql端口。

可以通过查看服务属性,找到my.ini的位置。如下截图。

找到my.ini文件后,修改端口,共两处。原来是3306,随意修改成其他,如3307

 

重启mysql服务。

【至此,问题已经解决】

准确的原因还不很确定,猜测是由于某些软件对3306端口有影响。

顺便记录下操作过程中一些排查指令。

1、判断请求是否连接到数据库中,可以在数据库查询

show full processlist;

发送连接请求的同时,查询连接信息,可以判断是否有请求正在连接。

2、排查数据库问题时,可以查看mysql的错误日志。一般在my.ini同级目录下的data目录,具体文件名称在my.ini中查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值