一年前,我开发了一个网站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特别是今天,重启了也没用,又坏了,又联系不到客服,急死了。请大家帮忙找找,到底是啥原因?是否和流量大小相关?应该怎么解决,谢谢!
解决方案 »
- 备份的数据库导入的问题!!!!!!!
- 能建一张表,其中一个字段作为外键参照到的是表中的另一个字段么??
- mysql已经指定主键了,为什么用phpMyAdmin插入的时候,主键设置为空也不报错啊?
- 取一个表中 某个字段的重复数据?
- myql奇怪的现象 请高手解答我该怎么写呢
- 急问 ERROR 2002:Can't connect to local MySQL ????
- 为什么在mysql中select不能给字段重新命名??
- 关于Mysql的存储问题
- 求一对多,查询最新一条信息SQL
- 请问各位大虾在win2k下做几个可以访问mysql数据库的诸如用户注册,作业提交,传送文件的网页,请问最佳的解决方案是什么?要安装哪些软件呢?
- 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
我说不是内存的原因在于,同一主机上其他网站运行良好。自己网站不访问数据库的部分也能正常显示。