lzkd 发表于 2010-1-14 13:33:09

刚才论坛好象突然挂掉.出错信息


Discuz! info: Can not connect to MySQL server

Time: 2010-1-14 1:30pm
Script: /forum/viewthread.php

Error: Too many connections
Errno.: 1040

Similar error report has beed dispatched to administrator before.

jason 发表于 2010-1-14 13:36:13

都是你们灌水灌的!我重启了mysql才好

lzkd 发表于 2010-1-14 13:41:16

原帖由 <i>jason</i> 于 2010-1-14 01:36 PM 发表 <a href="http://www.pkuxkx.com/forum/redirect.php?goto=findpost&pid=118464&ptid=11140" target="_blank"><img src="http://www.pkuxkx.com/forum/images/common/back.gif" border="0" onclick="zoom(this)" onload="attachimg(this, 'load')" alt="" /></a><br />
都是你们灌水灌的!我重启了mysql才好 <br />
我错了...下次不了....
才这么一点量,能把mysql弄挂?有这么夸张吗?mysql很结实的呀

lzkd 发表于 2010-1-14 14:15:08

这个错误的原因是连接数太多,应该跟灌水没什么关系吧?


18.2.4 Too many connections錯誤

如果在你試土連接MySQL時,你得到錯誤Too many connections,這意味著已經有max_connections個客戶連接了mysqld伺服器。

如果你需要比預設(100)更多的連接,那麼你應該重啟mysqld,用更大的 max_connections 變數值。

注意,mysqld實際上允許(max_connections+1)個客戶連接。最後一個連接是為一個用Process權限的用戶保留的。通過不把這個權限給一般用戶(他們不應該需要它),有這個權限一個管理員可以登錄並且使用SHOW PROCESSLIST找出什麼可能出錯。見7.21 SHOW句法(得到表,列的資訊)。

lzkd 发表于 2010-1-14 14:16:38

只要增加连接数,就可以解决这个问题


Mysql中too many connections问题的解决
关键字: mysql

使用mysql,经常碰到too many connections的报错,登录不上去,只能重新启动。通过如下的方法可以解决这个问题:

1。首先修改/etc/my.cnf文件,增加如下一行

set-variable = max_connections=500

或在启动命令中加上参数 max_connections=500
就是修改最大连接数,然后重启mysql.默认的连接数是100,太少了,所以容易出现如题错误.

2。重新启动mysql,通过show variables可以查看max_connections是否修改成功。

3。为了防止发生too many connections时候无法登录的问题,mysql manual有如下的说明:

mysqld actually allows max_connections+1 clients to connect. The extra connection is reserved for use by accounts that have the SUPER privilege. By granting the SUPER privilege to administrators and not to normal users (who should not need it), an administrator can connect to the server and use SHOW PROCESSLIST to diagnose problems even if the maximum number of unprivileged clients are connected.

因此, 必须只赋予root用户的SUPER权限,同时所有数据库连接的帐户不能赋予SUPER权限。前面说到的报错后无法登录就是由于我们的应用程序直接配置的root用户

safeguard 发表于 2010-1-14 14:18:10

难道是遭到了DOS攻击?
还是有的连接断了以后没有释放?

lzkd 发表于 2010-1-14 14:21:30

找到另一个可能.不过,对动网的代码没研究过,不知道是否会存在这种问题.但这个可能是有的.也许,这不是灌水灌出来的?

数据库连接开太多造成的。当时有个bug,造成打开数据库连接以后抛异常后没有被关闭。检查一下打开和关闭连接的代码吧。同时可以用数据库连接池,减少打开的连接数。

lzkd 发表于 2010-1-14 14:33:10

说说自己使用mysql的经历.
现在手上也没有mysql米办法做测试.只是印象中,记得有一次无聊,测试数据库强度.
好象是一分钟之内插了多少条记录来着,反正数量很多.数据库很结实的样子.....

lzkd 发表于 2010-1-14 14:36:49

原帖由 <i>safeguard</i> 于 2010-1-14 02:18 PM 发表 <a href="http://www.pkuxkx.com/forum/redirect.php?goto=findpost&pid=118478&ptid=11140" target="_blank"><img src="http://www.pkuxkx.com/forum/images/common/back.gif" border="0" onclick="zoom(this)" onload="attachimg(this, 'load')" alt="" /></a><br />
难道是遭到了DOS攻击?<br />
还是有的连接断了以后没有释放? <br />

DOS攻击就不会这么容易过去了.应该不是

lzkd 发表于 2010-1-14 14:37:56

所以,想来想去.这次论坛挂掉,应该不是灌水灌出来的.jason判断有误
页: [1] 2 3
查看完整版本: 刚才论坛好象突然挂掉.出错信息