一年前,我开发了一个网站http://www.1b2g.com,租用的是linux下PHP+mySQL的虚拟空间,之前一直工作正常。
近半年来,却频繁出现连接数据库失败错误(一周1~2次),需要找空间商重启mysql服务才行:Warning: mysql_connect(): Can't connect to MySQL server on 'xx.xx.xx.xx' (4) in /www/users/1b2g.com/xxxx.php on line xxxx找空间商投诉,空间商说是我自己的问题,说同主机的其他网站没有类似问题。在网上搜索,似乎有些网友说,操作数据库不能用mysql_connect()和mysql_close()开关。照文中指示,将mysql_connect()改成了mysql_pconnect(),似乎正常了半个月时间。但是这半个月恰好因为百度调整,我的网站流量下降了。这2天,流量恢复,问题再度出现,而且不再是1周1~2,是天天出现:Warning: mysql_pconnect(): Can't connect to MySQL server on 'xx.xx.xx.xx' (4) in /www/users/1b2g.com/xxxx.php on line xxxx特别是今天,重启了也没用,又坏了,又联系不到客服,急死了。请大家帮忙找找,到底是啥原因?是否和流量大小相关?应该怎么解决,谢谢!

解决方案 »

  1.   

    我之前mysql_connect()和mysql_close()是一一对应的,仍然出这个问题。
    现在改成mysql_pconnect(),mysql_close()还是保留了,但据说mysql_close()是关不掉mysql_pconnect()打开的连接的。mysql_pconnect()是永久连接。
      

  2.   

    将mysql_connect()改成了mysql_pconnect(),似乎正常了半个月时间
    看一下这个帖子:http://topic.csdn.net/t/20040315/22/2846620.html
      

  3.   

    To yueliangdao0608:看了,谢谢!
    感觉mysql_pconnect()就和连接池有点类似啊,我现在就用的是mysql_pconnect(),可是还是有问题。最郁闷的是据客服说同主机的其他站点都没问题。
    我也偷偷试了一下,用工具找到和我同一个主机的其他站点,我的站点出问题的时候,那些论坛都还能正常访问。
    不过根据论坛的帖数判断,感觉他们的流量比我的还要少一些,虽然我的也并不太多。
      

  4.   

    中午又发生同样的问题了。
    关闭所有窗口,等上20分钟又自动恢复了,1个小时内连续两次,看来还是资源不够。
    但是其实并发用户并不多,统计插件显示也就不到10个,而且我用的是mysql_pconnect(),不是不用重新连接数据库的吗?为什么国庆前后半个月,一直都没问题呢?我调mysql_close()带了连接id,不会关掉mysql_pconnect()连接吧?
      

  5.   

    http://topic.csdn.net/u/20071011/13/b413b058-ad62-4a9a-bff7-2d6d11bce6fa.html这里也有同样的问题,谁能帮我真正解决,两边分数都是他(她)的了。谢谢!
      

  6.   

    记得去年我在公司的一台美国的虚拟主机上装wildfire.但是也是经常重启或者直接就死掉。最后才发现是内存被耗尽了。
      

  7.   

    从你的现象来看, 'xx.xx.xx.xx '应该你是用了域名或者IP作为host名,这样一旦DNS或者网关出问题,就会连不上本机端口,
    建议你使用localhost作为host名。localhost还会在不支持socket的时候自动使用管道连接本机,不会出现连接问题。以下是类似的错误:
    http://www.mail-archive.com/[email protected]/msg00043.html
      

  8.   

    To yueliangdao0608:一般主机对数据库连接数做了限制。
    我说不是内存的原因在于,同一主机上其他网站运行良好。自己网站不访问数据库的部分也能正常显示。