阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL 修改最大连接数

141次阅读
没有评论

共计 1084 个字符,预计需要花费 3 分钟才能阅读完成。

今天使用 ide 连接线下 MySQL 报错 Can not connect to MySQL server. Too many connections,报错很明确,与 MySQL 的连接数满了。想想也是,每起一个服务都会创建 MySQL 连接池,占用不少的长连接。用 ide 查看了一下,原来最大连接数才 151,看来有必要改大一点了。

上网查了一下,修改方式有两种

1. 命令行修改

进入 mysql 后,set GLOBAL max_connections=1024; 即可立即生效,但是博主没有使用这种方式,因为这种方法治标不治本,一点重启 mysql,最大连接数又会变回 151

2. 修改配置,然后重启

vi /etc/m.cnf 加入 max_connections=1024,然后重启 mysql 即可。

重启后,很遗憾,max_connections 变成了 214,这就很诡异了。我把 max_connections 又分别设置成 500 和 213,实际的 max_connections 分别是 214 和 213。也就是说,在这台服务器上,max_connections 最大只能是 234,猜测是因为操作系统的限制导致 max_connections 最大只能为 213。博主翻了翻 MySQl 官方文档(英语不好看文档真是浑身难受 ),发现以下几句话:

The maximum number of connections MySQL can support depends on the quality of the thread library on a given platform, the amount of RAM available, how much RAM is used for each connection, the workload from each connection, and the desired response time. Increasing open-files-limit may be necessary. Also see Section 2.5,“Installing MySQL on Linux”, for how to raise the operating system limit on how many handles can be used by MySQL.

以我的英语水准,把上述语句概括起来就是,max_connections 依托于操作系统,Linux 系统必要时需要增加 open-files-limit。万万没想到啊,修改 max_connections 竟然要修改操作系统最大文件描述符。

vi /usr/lib/systemd/system/mysqld.service 加入

LimitNOFILE=50000

重启 MySQL

嗯,搞定了~

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计1084字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中