2013年11月29日 星期五 10:57
顾名思义,这个参数的意义就是MySQL所允许的最大连接数量。在MySQL 5.6版本中,这个参数默认值是151,在5.1.15之前版本中,默认值是100。
如果使用默认值,那么很有可能会遇到 Too many connections 的错误,原因就是这些默认值都太保守了。对于一个比较忙碌的网站,如果服务器内存不是非常紧张,我建议将此参数设置为2000或更高。
修改这个参数时,要酌情加大open-files-limit参数的值,因为每个连接都需要占用一个文件描述符。另外,对于CentOS 6系统,还有一个 /etc/security/limits.d/90-nproc.conf 文件,限制了一个进程的子进程(线程)的数量,默认是1024,也需要调整。
更多相关信息请参考:
http://dev.mysql.com/doc/refman/5.6/en/too-many-connections.html
http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_max_connections
http://dev.mysql.com/doc/refman/5.6/en/server-options.html#option_mysqld_open-files-limit
每次看到这个参数,都让我想起一个经典的场景:
BOSS:网站挂了!!!怎么回事?
DEV:PHP连接MySQL时得到 Too many connections 的错误,肯定是数据库出问题了吧?
DBA:我看到了,有一些SQL语句写的有问题,执行非常慢,导致连接数越积越多,咱们一起研究修改一下吧。
DEV:怎么可能?!肯定是你的连接数设置的太低了吧?
BOSS:赶紧把连接数增加三倍!
DBA默默的去执行了,DEV哼着小曲走了。
第二天:
BOSS:网站好慢啊,一个页面要一分钟才出来,怎么回事?
DEV:肯定是数据库出问题了吧?
DBA:嘿嘿,数据库挺正常的,没有返回错误,没有拒绝连接。
DEV:那是怎么回事呢,我研究一下... ...好像这条SQL语句写的有问题哦...啊,这条也有问题...
BOSS:今天晚上加班改,改不完别回家吃饭!
Zeuux © 2024
京ICP备05028076号