服务脚本Mysql server has gone away解决

程序开发中经常会用到服务脚本
甚至有时候会写一直在运行的脚本
一般通过
while(TRUE) {
    //程序体实现
}
如果程序体里有sql操作,经常会出问题,以MYSQL为例,一个连接如果超过一定时间(wait_timeout设置)没有任何操作,会自动断开,这个时候一般会有Mysql server has gone away的报错,简单的处理办法就是循环体每隔一段时间(时间小于wait_timeout)断开一次,外面一个守护进程,每隔5分钟检查一次,如果发现进程不在就重启
还有就是my.cnf 文件, max_allowed_packet 设置的稍微大点,这个太小,并发量大也会有问题
再者就是减轻对DB的依赖,可以加一层缓存,如果命中缓存就走缓存,如果没缓存走数据库
当然了,你也可以霸气的修改wait_timeout值:
$sql = "set wait_timeout = 3600*24";  
$db->query($sql);  

什么?你连如何查看mysql系统配置都不知道?
show variables;
如果出来的参数太多,不好找,可以模糊查询:
show variables like '%godeye%'