在docker上连接mysql报错:The last packet sent successfully to the server was 0 milliseconds ago

在Docker环境下,一个应用程序连接运行在3307端口的MySQL(映射3306)时报错。报错信息表明并非兼容性问题。关闭本地MySQL并更改Docker MySQL端口为3306后,连接恢复正常,揭示问题在于应用程序尝试连接3306而非3307。解决方案是在Docker应用中直接使用3306端口连接MySQL。
摘要由CSDN通过智能技术生成

环境

先说一下我的情况:
mysql 数据库版本:5.7
JDBC驱动版本:8.0
然后我是在docker运行的mysql和应用程序(配置了hosts的解析,同时配置了相同的networks)。但由于其他原因,本地的mysql占用了3306端口,所以在docker中运行的mysql使用的是3307端口(将3307映射到3306),在开发时,应用程序连接mysql(3307端口)是没有问题的,但将应用程序也打包到docker部署时,就会出问题了,出现了下面的报错信息。
从这也可以看出,这个不是兼容问题,8.0的驱动是可以连接5.7的数据库的,更加具体的说明可以参考mysql官方文档
在这里插入图片描述

报错

下面是我的报错信息:

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
 at java
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值