show status like '%max_connections%'; ##mysql最大连接数
set global max_connections=1000 ##重新设置 show variables like '%max_connections%'; ##查询数据库当前设置的最大连接数 show global status like 'Max_used_connections'; ##服务器响应的最大连接数 show status like 'Threads%';
Variable_name Value
Threads_cached 0 ##mysql管理的线程池中还有多少可以被复用的资源
Threads_connected 152 ##打开的连接数
Threads_created 550 ##表示创建过的线程数,如果发现Threads_created值过大的话,表明MySQL服务器一直在创建线程,这也是比较耗资源,可以适当增加配置文件中thread_cache_size值,查询服务器
Threads_running 1 ##激活的连接数,这个数值一般远低于connected数值,准确的来说,Threads_running是代表当前并发数 show variables like 'thread_cache_size';
set global thread_cache_size=60;
MySQL服务器的连接数并不是要达到最大的100%为好,还是要具体问题具体分析,下面就对MySQL服务器最大连接数的合理设置进行了详尽的分析,供您参考。
我们经常会遇见“MySQL: ERROR 1040: Too many connections”的情况,一种是访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力,
另外一种情况是MySQL配 置文件中max_connections值过小:
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 256 | +
-----------------+-------+
这台MySQL服务器最大连接数是256,然后查询一下服务器响应的最大连接数:
mysql> show global status like 'Max_used_connections';
MySQL服务器过去的最大连接数是245,没有达到服务器连接数上限256,应该没有出现1040错误,比较理想的设置是: Max_used_connections / max_connections * 100% ≈ 85%
最大连接数占上限连接数的85%左右,如果发现比例在10%以下,MySQL服务器连接上线就设置得过高了。
----------------------------------------------------------------------------------------------------
https://cloud.tencent.com/developer/article/1081708
如果遇见“MySQL:ERROR 1040:Too manyconnec-tions”的情况
一种情况是访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力了
另外一种情况是MySQL配置文件中max_connections的值过小
来看一个例子:
(1)查看下MySQL配置的最大连接数
mysql> show variables like 'max_connections';
这台MySQL服务器的最大连接数是100
(2)查询一下该服务器曾经响应过的最大连接数:
mysql> show global status like 'Max_used_connections';
实际中出现过的最大连接数是68,没有达到上限100,应该不会出现1040错误
连接数理想的设置是:
Max_used_connections / max_connections * 100% ≈ 85%
即最大连接数占上限连接数的85%左右