首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在MySQL中以编程方式设置max_connections

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

Stack Overflow用户
提问于 2013-11-07 04:51:01
回答 2查看 120.5K关注 0票数 42

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

代码语言:javascript
复制
SET global max_connections = 1000000

现在我尝试检查max_connections,如下所示:

代码语言:javascript
复制
show variables like 'max_connections'

它为我提供了以下内容:

代码语言:javascript
复制
max_connections; 100000;

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

连接

时出错:超时已过期。在从池中获取连接之前超时时间已过。这可能是因为所有池连接都在使用中,并且已达到最大池大小。

为什么我会得到这个错误,以及如何修复它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-15 08:41:40

如何更改max_connections

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

代码语言:javascript
复制
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)

要执行操作

timeout相关

我以前从未见过你的错误信息,所以我用谷歌搜索了一下。您可能正在使用Connector/Net。说有最大的连接池大小。(默认值为100)参见表22.21。

我建议您将此值增加到100k或禁用连接池Pooling=false

已更新

他有两个问题。

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

Q2 -池化的值是否可以增加,或者最大值为100?

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

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

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

票数 67
EN

Stack Overflow用户

发布于 2018-07-13 17:11:59

您可以使用以下命令设置最大连接数:

set global max_connections = '1 < your number > 100000';

这将设置您的mysql连接单元数(需要SUPER权限)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19822558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档