mysql命令:
(navicat的工具中打开命令行界面操作)
# 查看mysql版本
SELECT VERSION();
# 查看所有连接
show processlist;
# 查看连接的详细信息:
show full processlist;
# 查看mysql服务器当前设置的最大连接数:
show variables like '%max_connections%';
# 设置最大连接数为1000(可以再次查看是否设置成功)
set global max_connections=1000;
# 查看当前实际最大使用连接数:
show global status like 'Max_used_connections';
# 非交互式连接保持的最大时间,单位是s(秒),超过该时间该连接就会被清除
set global interactive_timeout=100;
# 查看线程:
show status like 'Threads%'
连接数配置:
登录MySQL或使用第三方工具连接MySQL后,
使用如下命令,查看mysql服务器设置的最大连接数:
show variables like '%max_connections%';
该连接数可在mysql的主配置文件/etc/my.cnf中修改,在/etc/my.cnf文件中[mysqld]部分增加max_connections=1000,重置连接数,重启mysql服务。
Mysql5.5 mysql5.6 mysql5.7:默认的最大连接数都是151,上限为:100000(十万)。
连接数超出阈值:
连接数达到设定最大值后会有机制允许超出个别新的连接,但是有阈值,超出这个阈值就会报错。
如mysql设置最大连接数为500,当a服务使用数据库连接池占用300个连接的时候,b服务的数据库连接池在配置201个连接并启动,此时b服务可能并不会出连接数超出的异常。但是如果b服务的数据库连接池申请300个连接的话就很有可能报连接数超出的异常。
Mysql 怎么设置才合理
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%左右