General error: 2006 MySQL server has gone away

可能有很多人遇到过标题中的这个错误。之前我们也经常遇到,一直没有认真找是什么原因。今天花了些时间google了下。原来,这个问题并不是MySQL的bug, 它本质是一个配置问题, 解决起来也不麻烦。

在Mysql客户端中, 通过 SHOW VARIABLES; 语句可以查看Mysql系统变量。这些变量中名为 wait_timeout 的变量的值过于小,就是造成这个错误的根源。这个变量的含义是:如果在该连接在 wait_timeout 时间内没有进行任何查询(idle时间超时), 服务器将自动关闭这个连接。

如果你的脚本在执行了一个查询之后,接着是另外一个很耗时的没有任何数据库查询的操作(超过了wait_timeout设置的值,单位是秒), 之后你再进行数据库操作,就一定会遇到标题所示的错误。

解决方案是,在必要的地方,数据库连接之后,立刻执行一句”SET SESSION wait_timeout=65535″。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值