架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 13420|回复: 3

[资料] MySQL 性能优化设置 max_connections 最大连接数

[复制链接]
发表于 2021-8-27 10:02:14 | 显示全部楼层 |阅读模式
当 MySQL 客户端数量超过最大连接数的时候,不同语言的驱动都会报“Too many connections”的错误。

Java 程序报错:

Data source rejected establishment of connection,  message from server: "Too many connections"
QQ截图20210823183800.jpg

.NET Core 程序报错:

Too many connections
或则
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.
QQ截图20210826141941.jpg

使用如下命令查看最大连接数和当前连接数:

QQ截图20210826143151.jpg

临时设置最大连接数,不需要重启 MySQL 服务器,但是重启 MySQL 服务后,该设置会失效


可以在 /etc/my.cnf 里面永久设置数据库的最大连接数 :


当我们设置完成最大连接数后,使用 .NET 程序进行测试,还是会报错如下:

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.
这是由于 .NET 客户端默认使用线程池,线程池的最大限制默认为:100

https://dev.mysql.com/doc/dev/connector-net/6.10/html/P_MySql_Data_MySqlClient_MySqlConnectionStringBuilder_MaximumPoolSize.htm

我们关闭 Pooling 线程池,不使用线程池,也就没有了限制,测试同时并发 500 个线程,没有报错了,如下图:

QQ截图20210827095945.jpg

.NET/C# 测试代码如下:

(完)





上一篇:nginx 访问问题 connect() to 127.0.0.1:8080 failed (13: Permission den...
下一篇:机械键盘结构和原理图
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2021-8-30 13:16:26 | 显示全部楼层
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-12-18 20:32:19 | 显示全部楼层
单个用户最大连接数

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-5-19 11:34:24 | 显示全部楼层
学习学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-20 17:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表