今天在向mysql插入数据库时报错mysql
MySQL server has gone away insert into ***_enewsdolog(******)括号内是一些字段sql
数据能够正常插入就是会出现这个报错,查找了一下缘由,最后发现是my.cnf的设置有问题数据库
默认的 wait_time=10server
将其注释或将数值扩大能够解决问题图片
如wait_time= 28000it
在网上查了一些资料,还有一些缘由可能致使这个问题:变量
一种多是发送的SQL语句太长,以至超过了max_allowed_packet的大小,若是是这种缘由,你只要修改my.cnf,加大max_allowed_packet的值便可。程序
还有一种多是由于某些缘由致使超时,好比说程序中获取数据库链接时采用了Singleton的作法,虽然屡次链接数据库,但其实使用的都是同一个链接,并且程序中某两次操做数据库的间隔时间超过了wait_timeout(SHOW STATUS能看到此设置),那么就可能出现问题。最简单的处理方式就是把wait_timeout改大,固然你也能够在程序里时不时顺手mysql_ping()一下,这样MySQL就知道它不是一我的在战斗。方法
解决方法:im
执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。好比,图片数据的处理 解决方案: 在my.cnf文件中添加或者修改如下变量: max_allowed_packet = 10M(也能够设置本身须要的大小) max_allowed_packet 参数的做用是,用来控制其通讯缓冲区的最大长度。