帮酷LOGO
0 0 评论
文章标签:Resolve  Connections  

问题

当客户端试图登录到MySQL时,有时会被拒绝,并收到一条"too many connections"错误消息,这意味着连接到服务器的客户端的最大数量已经达到,客户端必须等待另一个客户端注销,或者管理员必须增加允许的最大连接数。

可以使用 SHOW STATUS语句找到服务器的连接信息:



$ mysql -u root -p
SHOW STATUS LIKE 'max_used_connections';

首先,应确保应用程序在不再需要时关闭与服务器的连接,但也可以通过增加max_connections变量的值,并且减少wait_timeout的值来解决此错误,前提是预估许多连接未被积极使用。

解决方案

系统变量max_connections中包含了服务器允许的最大连接数,默认值为151 ,要查看该变量设置的值,请运行下面的SQL命令:



$ mysql -u root -p
mysql> SHOW VARIABLES LIKE 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 151 |
+-----------------+-------+

更改max_connections参数(临时)

要更改系统变量max_connections的值,可以使用-max_connections选项,要在服务器运行时临时更改此变量,请输入以下SQL语句:



$ mysql -u root -p
mysql> SET GLOBAL max_connections = 512;

当MySQL服务器守护进程(mysqld )重新启动时,上述值将设置回默认值151,若要使更改永久化,请使用下面的方法。

更改max_connections参数(永久)

更改max_connections参数的更好方法是,添加到选项文件(my.cnf或my.ini,具体取决于你的系统),以便在下次重新启动服务器时生效,假设你使用/etc/my.cnf文件,请将下面内容添加到它里面。



# vi /etc/my.cnf
max_connections = 512

现在重启mysqld守护进程,以便让更改生效。

对于centos/rhel :



# service mysqld restart

对于centos/rhel 7:



# systemctl restart mysqld

Linux上连接数的最大值是多少?

除了MySQL可以设置100,000限制,最大连接数的上限很大程度上取决于操作系统,Linux有一个称为最大打开文件(max open file)的限制,它定义进程可以打开的最大文件数,默认值为1024 (你可以使用ulimit -n查看)。



文章标签:Connections  Resolve  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语