连接MySQL数据库失败频繁的原因

连接 mySQL数据库失败频繁,主要是什么原因造成的? 一年前,我开发了一个网站,租用的是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

  特别是今天,重启了也没用,又坏了,又联系不到客服,急死了。

  请大家帮忙找找,到底是啥原因?是否和流量大小相关?应该怎么解决,谢谢!

  回答:对于这个疑问,当时有人提出建议:优化一下程序,每页不要有过多的查询. 特别是循环体里面,尽量不要再有查询,否则很容易堵塞。应该考虑使用连接池

  但是提问者又出现了问题:我已经尽可能减少每个页面的数据库连接数了。

  曾经最开始的时候有个页面的连接数是比较多(因为开始为了代码复用,用了iframe嵌套),后来经优化最多的1个页面已经减到4个;其他一般1~2个。

  昨天我已经把所有页面的连接数都降到2个以下,用户访问最多的页面(占访问总量的80%)只有1个连接。

  但是今天中午问题又出现了。

  从现象来看, 'xx.xx.xx.xx '应该你是用了域名或者IP作为host名,这样一旦DNS或者网关出问题,就会连不上本机端口,建议你使用localhost作为host名。localhost还会在不支持socket的时候自动使用管道连接本机,不会出现连接问题。
转载:http://www.51testing.com/html/33/n-148833.html

转载于:https://www.cnblogs.com/junzhongxu/archive/2009/09/04/1560035.html

你可能感兴趣的:(数据库,php,运维)