wangjialei 发表于 2010-11-15 13:13:45

mysql has gone away错误如何解决

我用codeigniter做的一个项目,里面有大量数据读取,更新操作,
运行4个小时左右,就有mysql has gone away的错,

网上解决的办法好像是mysql_ping,

在codeigniter中如何调用mysql_ping,这个问题又要如何解决呢?

wangjialei 发表于 2010-11-15 13:32:08

老大快来呀,我要撑不住了,mysql has gone away是不是再连接一次就可以???

我市在构造器里

function User_model()
    {
      parent::Model();
      $this->load->database();
    }

load的database,在函数里再调用一次$this->load->database();
是不是就重新连接了?

jeongee 发表于 2010-11-15 13:44:52

修改my.ini

打开my.ini 找到这一行,下面添加



#扩大缓冲区
max_allowed_packet=32M
保存后,重启MySQL,试试呢

haohailuo 发表于 2010-11-15 13:59:13

这个问题与你数据库设置的wait-timeout有关系,除了pconnect之外,当一个数据库连接在你设置的wait-timeout时间之内没有任何操作,数据库就会强行关闭。你可以增大这个值,或者使用mysql自带的函数mysql_ping()在操作前进行校验,在CI中,需要你自己扩展一下

wangjialei 发表于 2010-11-15 14:06:26

服务器的mysql,我不能修改他的配置,
我现在想
每次调用 我的insert_books 函数时
连接一次,
ci里连接用什么函数

jeongee 发表于 2010-11-15 14:20:05

去看源代码,用的无非还是mysql_connect

wangjialei 发表于 2010-11-15 18:43:37

各位大哥,你们真是不给力压,
http://codeigniter.org.cn/user_guide/database/connecting.html

手册里的这个东东是什么呀

$this->db->reconnect();

jeongee 发表于 2010-11-15 19:21:16

回复 7# wangjialei


   呵呵,还是手册给力吆

haohailuo 发表于 2010-11-15 23:56:03

回复 7# wangjialei
这个方法只是注销掉当前的链接,而没有重新连接

wangjialei 发表于 2010-11-16 16:44:32

经过我今天一天测试,问题解决了,就是用得$this->db->reconnect();
页: [1] 2
查看完整版本: mysql has gone away错误如何解决