Mysql 设置最大连接数

show variables like '%max_connections%'; -- 查询数据库当前设置的最大连接数
set global max_connections=1000; -- 设置最大连接数,服务器重启后失效,可以写到my.ini配置文件中

show global status like 'Max_used_connections'; -- 服务器历史响应的最大连接数

MariaDB [(none)]> show status like 'Threads%'; -- 当前实时连接
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_cached    | 0     |
| Threads_connected | 3     | -- 打开的连接数
| Threads_created   | 4613  | -- 表示创建过的线程数,如果值过大,表明服务器一直在创建线程,可以适当增加配置文件中thread_cache_size值
| Threads_running   | 1     | -- 激活的连接数,当前并发数
+-------------------+-------+
4 rows in set (0.00 sec)


show variables like 'thread_cache_size'; 
set global thread_cache_size=60;

 MySQL服务器的连接数并不是要达到最大的100%为好,还是要具体问题具体分析,如果遇见“MySQL: ERROR 1040: Too many connections”的情况:

(1)可能访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力,

(2)另外一种情况是MySQL配置文件中max_connections值过小

mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 256   | 
+-----------------+-------+  

这台MySQL服务器最大连接数是256,然后查询一下服务器响应的最大连接数:   

MariaDB [(none)]> show global status like '%max_used_connections%';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| Max_used_connections | 255   |
+----------------------+-------+

MySQL服务器过去的最大连接数是255,没有达到服务器连接数上限256,应该没有出现1040错误,比较理想的设置是:   Max_used_connections / max_connections * 100% ≈ 85%   

最大连接数占上限连接数的85%左右,如果发现比例在10%以下,MySQL服务器连接上线就设置得过高了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G_G#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值