当 php 与mysql之间的连接并非php正常回收,断开时,将会报错 "MySQL server has gone away"
该报错表示 mysql连接已经失效,需要重新发起连接....具体断开原因有以下几点:
mysql 服务重启
当 mysql服务重启之后,将会断开原有的连接,原来的连接断开之后,php继续调用则会报错,
重启包括异常重启,手动重启
可以通过
show global...可通过 命令,
kill id
进行主动关闭某一个连接
执行语句过长
当 sql 大小超出
show global variables like '%max_allowed_packet%';
时...首先我们需要了解,直接原因是连接断开,连接断开无法避免,没有任何方法可以确保一个tcp连接永远有效,我们只能尽量避免出现此状况....ping,也可能会因为mysql重启,网络连接动荡导致连接断开,那么我们应该在定时ping 出错的时候,及时回收连接,重新发起连接,确保正常业务不会收到影响
注意sql语句的大小
当执行语句过长时,也会出现断线问题