一年前,我开发了一个网站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~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特别是今天,重启了也没用,又坏了,又联系不到客服,急死了。请大家帮忙找找,到底是啥原因?是否和流量大小相关?应该怎么解决,谢谢!
解决方案 »
- 超级问题 ---MY SQL 晕了
- 关于在线CRM的数据库设计
- [mysql]一个多表update遇到的问题,新手急求,在线等
- 先左连接,后联合查询,报错,求助
- 用户和客户表,如果得到所有的客户数少于3个的用户?
- insert into xxxx values(),(),()只有mysql支持?
- PD反工程MYSQL数据库,各表字段重复?
- 请教大家一个查询的问题
- mysql 视图中有 union all 的效率问题
- 运行安装接口程序出现以下错误: You have an error in your SQL syntax; check the manual that corr
- mysql数据库损坏了,建表时只有.frm文件能否恢复数据库。
- 救命啊,如何在delphi中访问mysql临时表
现在改成mysql_pconnect(),mysql_close()还是保留了,但据说mysql_close()是关不掉mysql_pconnect()打开的连接的。mysql_pconnect()是永久连接。
看一下这个帖子:http://topic.csdn.net/t/20040315/22/2846620.html
感觉mysql_pconnect()就和连接池有点类似啊,我现在就用的是mysql_pconnect(),可是还是有问题。最郁闷的是据客服说同主机的其他站点都没问题。
我也偷偷试了一下,用工具找到和我同一个主机的其他站点,我的站点出问题的时候,那些论坛都还能正常访问。
不过根据论坛的帖数判断,感觉他们的流量比我的还要少一些,虽然我的也并不太多。
关闭所有窗口,等上20分钟又自动恢复了,1个小时内连续两次,看来还是资源不够。
但是其实并发用户并不多,统计插件显示也就不到10个,而且我用的是mysql_pconnect(),不是不用重新连接数据库的吗?为什么国庆前后半个月,一直都没问题呢?我调mysql_close()带了连接id,不会关掉mysql_pconnect()连接吧?
建议你使用localhost作为host名。localhost还会在不支持socket的时候自动使用管道连接本机,不会出现连接问题。以下是类似的错误:
http://www.mail-archive.com/[email protected]/msg00043.html
我说不是内存的原因在于,同一主机上其他网站运行良好。自己网站不访问数据库的部分也能正常显示。