开发避坑指南(60):Mysql导入数据报错ERROR 2006 (HY000) MySQL server has gone away解决方案

问题

使用mysql命令行导入sql大文件的报错:

ERROR 2006 (HY000): MySQL server has gone away

解决方案

执行以下命令临时修改非交互式连接前等待活动的秒数、服务器关闭交互式连接前的空闲等待时间、服务器和客户端之间通信数据包的最大容量。再执行导入命令。

SET GLOBAL wait_timeout = 28800;  -- 例如,设置为8小时
SET GLOBAL interactive_timeout = 28800;
SET GLOBAL max_allowed_packet=1073741824;  -- 例如,设置为1GB

参数说明:

wait_timeout参数

wait_timeout是MySQL服务器关闭非交互式连接前等待活动的秒数,默认值为28800秒(8小时)。当客户端通过非交互方式(如JDBC连接)建立连接后,若在该时间内无操作,服务器会自动断开连接以释放资源。该参数可通过SET GLOBAL临时修改全局值,但需重启服务或修改配置文件(如my.cnf)才能永久生效。

interactive_timeout参数

interactive_timeout控制服务器关闭交互式连接(如命令行客户端)前的空闲等待时间,默认同样为28800秒。其生效条件取决于客户端是否使用CLIENT_INTERACTIVE选项连接。需注意,当两者同时设置时,交互式连接会优先采用interactive_timeout的值。修改方式与wait_timeout类似,需区分会话级和全局级作用域。

max_allowed_packet参数

max_allowed_packet限制MySQL服务器和客户端之间通信数据包的最大容量,默认通常为4MB-16MB,最大可设为1GB(1073741824字节)。该参数主要用于处理大字段插入、批量操作或主从复制时可能出现的包大小超限错误(如ERROR 2006)。通过SET GLOBAL可临时调整,但永久生效需修改配置文件并重启服务。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帧栈

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值