异常处理:The last packet sent successfully to the server was 0 milliseconds ago.

本文介绍了一种常见问题的解决方案,即在IDEA项目中连接Docker容器内的MySQL数据库时遇到的连接超时错误。通过调整MySQL的wait_timeout参数,延长连接回收时间,成功解决了项目无法正常运行的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在运行idea项目时,连接本地数据库运行成功。

改成服务器的docker容器内数据库时一直报这个错误,项目也进不去。

经过各种方法查试。

用了以下方法才解决。

解决思路:

之所以出现异常”The last packet sent successfully to the server was 0 milliseconds ago.“的大部分原因是由于数据库回收了连接,而系统的缓冲池不知道,继续使用被回收的连接所致的。

 方法就是将mysql回收空闲连接的时间变长,mysql默认回收时间是8小时,可以在mysql目录下的my.ini中增加下面配置,将时间改为1天。

           单位是秒,最大好像是24天:

          [mysqld]

          wait_timeout=86400  //加上这一句

但是由于是docker容器里面的,可能这个my.ini不好找或以其它名称存在。

解决需要用到的命令

查看运行的容器

docker ps

进入mysql容器

docker exec -it test bash

进入mysql.conf.d

cd /etc/mysql/mysql.conf.d/

由于是docker容器的mysql,不能直接用vi/vim打开,需要复制出来

docker cp test:/etc/mysql/mysql.conf.d/mysqld.cnf /root/mysqld.conf

打开mysqld.cnf后,在下面加上wait_timeout=86400即可。

复制回原来的目录。

docker cp mysqld.cnf test:/etc/mysql/mysql.conf.d/mysqld.cnf

重启docker容器

systemctl restart docker

重启mysql

docker start test //test是我的mysql容器名称,一般可能为mysql

idea重新远程连接docker容器内的mysql.启动项目,运行成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值