成功解决 MySQL server has gone away问题

今天出现了MySQL server has gone away的错误,MySQL服务器端表示毫无压力。


而通过mysql客户端的连接方式mysql -hxx -uxx -pxx databasename -e xxx则毫无问题


而App服务器的netstat -a | grep 3306  | grep TIME_WAIT个数非常小,只有2个。


MySQL在连接超时这块的参数如下


root@(none) 09:24:51>show variables like '%out%';


+------------------------------+----------+


| Variable_name                | Value    |


+------------------------------+----------+


| connect_timeout              | 10       |


| delayed_insert_timeout       | 300      |


| handlersocket_timeout        | 300      |


| handlersocket_wrlock_timeout | 12       |


| innodb_lock_wait_timeout     | 100      |


| innodb_rollback_on_timeout   | OFF      |


| interactive_timeout          | 28800    |


| lock_wait_timeout            | 31536000 |


| log_output                   | FILE     |


| net_read_timeout             | 30       |


| net_write_timeout            | 60       |


| slave_net_timeout            | 3600     |


| wait_timeout                 | 28800    |


+------------------------------+----------+


连接MySQL的连接方式从长连接改成了短连接,就再没出现了。


后来查了下资料,总结如下


1.MySQL服务器的wait_timeout参数为默认的28800秒,即8小时。该参数的意思是MySQL等待睡眠的连接的持续时间,如果超过8小时不活动,MySQL就会关闭这个连接。这个参数可以动态修改,但这个参数是session级别的,需要应用重新建立连接获取这个变量值才会生效。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值