gpt4 book ai didi

mysql - 如何以编程方式在 MySQL 中设置 max_connections

转载 作者:IT老高 更新时间:2023-10-28 23:42:30 24 4
gpt4 key购买 nike

我有一个服务器,很多用户都会连接到它并在那里使用数据库,而我正在使用 MySQL。我知道 MySQL 中 max_connections 的默认数量是 100 或 150,但我确信我需要超出该数量,因此我使用以下方法来增加数量:

SET global max_connections = 1000000

现在我尝试检查 max_connections 如下:

show variables like 'max_connections'

它给了我以下信息:

max_connections; 100000;

这是成功的标志(除非我理解错了)。当我的用户开始连接时,当连接的用户数超过 110 时,我收到来自服务器的错误。错误是:

error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.

为什么会出现此错误,如何解决?

最佳答案

如何更改max_connections

您可以在 MySQL 运行时通过 SET 更改 max_connections:

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

mysql> SHOW VARIABLES LIKE "max_connections";
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 5000 |
+-----------------+-------+
1 row in set (0.00 sec)

到 OP

超时相关

我以前从未见过您的错误消息,所以我用谷歌搜索。可能,您正在使用连接器/网络。 Connector/Net Manual说有最大连接池大小。 (默认为 100)见表 22.21。

我建议你把这个值增加到 100k 或者禁用连接池 Pooling=false

更新

他有两个问题。

Q1 - 如果我禁用池会发生什么放慢建立数据库连接的速度。 connection pooling 是一种使用已经建立的数据库连接的机制。建立新连接的成本很高。 http://en.wikipedia.org/wiki/Connection_pool

Q2 - pooling的值可以增加还是最大为100?

你可以增加,但我确定 MAX 值是多少,可能是 my.cnf 中的 max_connections

我的建议是不要关闭Pooling,将值增加100直到没有连接错误。

如果你有JMeter之类的压力测试工具,你可以自己测试一下。

关于mysql - 如何以编程方式在 MySQL 中设置 max_connections,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19822558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com