查看: 2099|回复: 25

连接MySQL失败频繁的原因

[复制链接]
发表于 2013-1-28 09:55:53 | 显示全部楼层 |阅读模式
 连接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的时候自动使用管道连接本机,不会出现连接问题。
发表于 2013-2-6 12:10:43 | 显示全部楼层
支持你一下下。。  
发表于 2013-2-9 09:05:43 | 显示全部楼层
我的妈呀,爱死你了  
发表于 2013-2-12 04:31:52 | 显示全部楼层
拍脑袋决策,拍胸脯保证,拍屁股走人  
发表于 2014-9-28 04:06:50 | 显示全部楼层
床前明月光,低头吃便当!  
发表于 2014-11-17 10:21:09 | 显示全部楼层
你还想说什么啊....  
发表于 2014-12-4 21:22:53 | 显示全部楼层
真是天底下好事多多  
发表于 2014-12-27 23:54:50 | 显示全部楼层
貌似我真的很笨????哎  
发表于 2015-1-27 21:55:48 | 显示全部楼层
我是来收集资料滴...  
发表于 2015-3-1 22:02:10 | 显示全部楼层
小心大家盯上你哦  
高级模式
B Color Image Link Quote Code Smilies

本版积分规则