这是怎么回事?ECSHOP info: Can't pConnect MySQL Server(localhost:33

2016-07-07 15:14 来源:www.chinab4c.com 作者:ecshop专家

最近网站老是出现:
ECSHOP info: Can't pConnect MySQL Server(localhost:3306)!

这种情况是不是数据并发数有限制,最近网站的在线人数大于1000人,正常一般在300人左右的,是不是被攻击了?

回答:
数据库出错了,检查下数据库

很可能,用tcpmon去分析下是不是DDos 或者某个单独ip很多

数据库不能连接

ecshop默认用的是普通连接方式,从报错中看出你用的是pconnet方式,此方式在并发量比较大时有以下蔽端:

apache模块方式下:
区别在于当php以apache模块方式运行时, 由于apache有使用进程池, 一个httpd进程结束后会被放回进程池, 这也就使得用pconnect打开的的那个mysql连接资源不被释放, 于是有下一个连接请求时就可以被复用.

这就使得在apache并发访问量不大的时候, 由于使用了pconnect, php节省了反复连接db的时间, 使得访问速度加快. 这应该是比较好理解的.

但是在apache并发访问量大的时候, 如果使用pconnect, 会由于之前的一些httpd进程占用的mysql连接没有close, 则可能会因为mysql已经达到最大连接着, 使得之后的一些请求永远得不到满足.

例如:
若mysql最大连接数设为500, 而apache的最大同时访问数设为2000
假设所有访问都会要求访问db, 而且操作时间会比较长

当前500个请求的httpd都没有结束的时候...之后的httd进程都是无法连接到mysql的(因已经达到mysql最大连接数). 只有当前500个httpd进程结束或被复用才可以连接得到了mysql.


建议你改成普通连接方式可能会解决你的问题

覆盖一下数据库?




终于看到有点用的回复了。nginx/1.0.11环境下是同样的情况么?

只为下个模板 之前下载附件很简单现在 居然要达到高级会员才可以下载附件。这个也太伤人了吧!难道要不停的回帖 。。回个几百才能达到下载附件的资格,谁又那么有空来回个几百帖呢?为了能下我喜爱板子我开始疯狂的回帖请各位大大见谅......希望官方能改下权限!

如果流量不大。应该是被攻击了。