admin 2007-11-13 19:30
Error: Can't connect to MySQL server on 'localhost' (10061)告诉你是怎么回事?
[free] Discuz! info: Can not connect to MySQL server
Time: 2007-11-13 6:25pm
Script: /bbs/index.php
Error: Can't connect to MySQL server on 'localhost' (10061)
Errno.: 2003
Similar error report has beed dispatched to administrator before.[/free]
[color=red][b]以上错误分几种情况说一下(首先您要确保您的服务器硬件及服务器环境是正常的,装新论坛先试一下):
一. 虚拟主机出现以上错误,有可能是因限制或服务器不稳定而引起,请联系空间服务商咨询,或是更换更好的空间.
[/b][/color]
[color=red][b]二. 先重启MYSQL服务,然后再观察,导致这个问题的原因有很多的.[/b][/color]
[color=red][b]三. 如果您是独立服务器,或是合租的服务器,正常情况下,不会是限制而引起,有几种情况如下:[/b][/color]
1. 有可能是攻击,攻击会导致服务器内存被占完,然后MYSQL数据库没内存用了,MYSQL就挂了,就会出现以上错误.
2. 有可能是程序出错,或是某个数据表出错,直接把整台服务器的MYSQL拉死了,然后出现上面错误.
[free]如果您认为是网站论坛访问量过大,数据库连接超过最大连接数.MYSQL数据库服务停止了.您可以按照下面方法检查一下,但这个方法是针对能控制服务器的.[color=blue]([b]但独立服务器或合租服务器几乎不可能是这个原因[/b])[/color]
[color=blue]解决方法(针对WIN系统)(如果是虚拟空间,只有联系空间服务商):[/color]
1, 首先到系统服务里面找到MYSQL服务并启动MYSQL服务.
2, 到MYSQL安装目录找到MY.INI文件(linux下为 my.cnf),打开MY.INI查找max_connections,修改连接数为1000,查找wait_timeout,修改为wait_timeout = 5,最后重启IIS与MYSQL服务.
3, 如果这个方法做过了,还是出错,那就是上面两种可能了.[/free]
[b]注意:如果是真正的超过了MYSQL连接数限制,出错的提示信息会很清楚的告诉您是超限了,并会显示限制为多少.真正的MYSQL连接数超限错误提示信息不是上面这个错误提示,我们做过实验的.[/b]
穷苦de网民 2008-4-26 00:07
注意.这个问题不一定是限制的问题.如果程序有问题,或是攻击,都有可以现这个情况.我们做过试验,一台服务器有20个论坛,大大小小论坛都有,日IP3000以上的论坛也有,正常情况下,这台服务器的整个MYSQL连接不会超过500,这是天天观察得出的结论.
一台WIN服务器的MYSQL数据库连接数一般可调到1000.也就是说正常情况下,MYSQL连接数是完全够用的,如果是独立服务器或是合租的服务器MYSQL数据库连接数一般不会超过限制.所以望大家多多检查是程序问题还是受到攻击.(但虚拟空间被真正的限制太小就是限制问题了,但真正的限制后出错提示信息上面已说过了)
如果程序有问题,或是被攻击,一台服务器的整个MYSQL连接数1000也不够用的,也会报错.
要注意的是,MYSQL数据库连接数与IIS连接数是完全不一样的.
[color=Red][b]如果是偶尔出现了此情况,有这样几个原因:[/b][/color]
1,论坛数据库很大,有人在论坛后台操作优化数据库,此时偶尔会出现此问题,数据库很大了,建议不要去操作优化数据库,数据库有500M了就不要操作优化了,数据库大了操作优化时太占资源会把MYSQL弄挂,最终导致整台服务器上所有论坛报错打不开;
2,论坛安装了首页四格/多格插件,论坛访问量突然大了,就会出现此问题,访问量大的论坛不要安装四格/多格或占资源的插件,同样的,只要一个论坛把MYSQL弄挂了,最终导致整台服务器上所有论坛报错打不开;
3,受到了攻击。
穷苦de网民 2008-4-26 00:11
如是独立服务器或是合租服务器,首先进服务器检查MYSQL服务是否为启动状态,可以马上重启MYSQL服务解决此问题,但重启之后不一会又出现此问题,如果以前一直正常,就是最近才这样子,那就要看看是否有攻击或是程序有问题了.还要观察MYSQL占用内存的大小,如果观察到出此问题时MYSQL占用内存完全与以前正常的时候不一样了,那就要注意是否有攻击,或是程序问题,前题是要您的内存是足够用的.
还有一个情况就是您的数据库很大,比如有1G左右大了,像这么大的数据库在优化数据库时有时会出现假死现象.要注意优化是一定要在访问量少的时间.
iamxyh 2008-5-7 20:14
我的Mysql最近经常出现这个问题,刷新一下就好了。30分钟在线人数在1500人左右。会是什么问题呢
admin 2008-5-7 20:18
需要观察.您用附件两个软件观察一下.
[b]正常情况下:[/b]
单个的IP连接数不超过50
每秒收到的SYN包不超过300
每秒收到的ACK包不超过300
[b][u]这个需要具体问题具体分析.[/u][/b]
[b][u]如果是攻击,解决很困难[/u][/b]
[b][u]1. 找当地相关部门报警,协助警方查找攻击源[/u][/b]
[b][u]2. 如果有条件可以安装防火墙,或是安装更高端设备[/u][/b]
[b][u]3. 查看服务器日志,查看防火墙日志,协助机房在高端设置上查找攻击源[/u][/b]
[b][u]4. 如果是小攻击可以封IP试试,或是换IP试试,若是有目录的攻击就不好办了,就必须报警处理[/u][/b]
[b][u]4. 如果还有更好的方法也可以......[/u][/b]
如果发现单个的IP连接很多,比如超过了100,这IP有可能有问题,可以到[url=http://www.ip138.com]www.ip138.com[/url]查一下IP的来源,如果IP是国外的,就可能是用代理IP攻击,也有的可能不是攻击,是搜索引擎蜘蛛,这个需要具体问题具体分析.
[b]相关话题:[/b] [url=http://www.xinnethz.net/thread-5320-1-1.html]http://www.xinnethz.net/thread-5320-1-1.html[/url]
穷苦de网民 2008-10-28 02:58
[color=Red][b]还有一个情况参考这里:[/b][/color][url=http://www.xinnethz.net/thread-14744-1-1.html]http://www.xinnethz.net/thread-14744-1-1.html[/url]