如何增加MySQL连接数(max_connections)?

66

MySQL数据库的每个套接字默认连接数为100,但我正在寻找任何一种方式来增加一个MySQL数据库套接字连接的可能连接数> 100。

3个回答

160

如果您需要在不重新启动MySQL的情况下增加MySQL连接,请按照以下步骤进行操作:

mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 100   |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> SET GLOBAL max_connections = 150;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 150   |
+-----------------+-------+
1 row in set (0.00 sec)

这些设置将在MySQL重新启动时更改。


要进行永久更改,请在my.cnf中添加以下行并重新启动MySQL。

max_connections = 150

@AbdulManaf非常感谢。那么您确定我们不需要重新启动MySQL数据库吗? - shekhar
@AbdulManaf,如果MySQL有多个实例在运行,我该如何移动以实现这一点? - shekhar
如果您有多个MySQL服务器,您可以逐个更改它们。 - Abdul Manaf
@AbdulManaf 不,我的意思是一个MySQL服务器可以有多个实例,在这种情况下我该如何处理? - shekhar
谢谢,我修改了文件/etc/my.cnf,添加了一行max_connections = x。 - elirigobeli
显示剩余5条评论

12

增加MySQL连接限制

MySQL默认配置将最大同时连接数设置为100。如果您需要增加它,可以很容易地实现:

对于MySQL 3.x:

# vi /etc/my.cnf
set-variable = max_connections = 250

对于 MySQL 4.x 和 5.x 版本:

# vi /etc/my.cnf
max_connections = 250

在您进行更改后,请重新启动MySQL,并使用以下命令进行验证:

echo "show variables like 'max_connections';" | mysql

编辑:-(来自评论)

最大并发连接数可以是最大范围:4,294,967,295。请查看MYSQL文档


但是我们必须重新启动MySQL数据库,对吧。如果MySQL有多个实例在运行,您能帮我实现这个操作吗? - shekhar
1
@shekhar:是的,这是一个好习惯,也会让你有效地反映出变化! - Rahul Tripathi
11
在增加MySQL的连接限制之前,你真的有责任(对自己和服务器)找出为什么达到了最大连接数。超过90%的MySQL服务器达到最大连接限制是因为存在需要纠正的性能限制问题。 - Rahul Tripathi
请告诉我,在 MySQL 运行多个实例的情况下该如何处理? - shekhar
@RahulTripathi 这可能是几年前的事情了,但我曾经在进行高速并行gzip管道导出/备份时遇到过限制。例如,在非常大的网站上,当以并行形式备份时,您将立即达到连接限制(不gzip / zip导出是一种罪恶,因为您可以通过减少磁盘瓶颈来节省多达10倍的空间),同时该网站正在运行且有人连接。如果导出时间太长而没有停机时间,则意味着在具有数百个表和数百GB数据的情况下,导出的数据可能不同步。 - Error Messages
显示剩余4条评论

6
我曾遇到同样的问题,通过使用MySQL Workbench解决了该问题,如下所示:
  1. 在导航器中(左侧),在"管理"部分下,单击"状态和系统变量"
  2. 然后选择"系统变量"(顶部选项卡)
  3. 在搜索框中搜索"connection"
  4. 你会看到需要调整以适应你需求的两个字段(max_connections和mysqlx_max_connections)
希望这可以帮到你!
请点击此链接查看我截图:https://istack.dev59.com/ikU6w.webp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接