- 静态查看
-- 查看数据库当前连接信息,可以看到连接数据库的进程id,ip,用户名,连接的数据库,连接状态,连接时长等 SHOW PROCESSLIST; SHOW FULL processlist; -- 查看数据库配置的最大连接数 show variables like '%max_connections%'; SHOW STATUS LIKE '%Connection%'; -- 查看数据库所有配置 show global variables; -- 响应最大连接数 -- 自上次启动起来 最大连接数量和发生的时间 -- 服务器启动后已经同时使用的连接的最大数量 show global status like 'Max_used_connections'; -- 查看max_user_connections 默认值(每个用户最大连接数) -- 每个MySQL用户的最大连接数 show variables like 'max_user_connections'; -- 或者 select @@max_user_connections; -- 设置 max_user_connections set global max_user_connections=1; -- 或 set @@global.max_user_connections=1;
- 实时查看
mysql> show status like 'Threads%'; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Threads_cached | 58 | | Threads_connected | 57 | ###这个数值指的是打开的连接数 | Threads_created | 3676 | | Threads_running | 4 | ###这个数值指的是激活的连接数,这个数值一般远低于connected数值 +-------------------+-------+ Threads_connected 跟show processlist结果相同,表示当前连接数。准确的来说,Threads_running是代表当前并发数 这是是查询数据库当前设置的最大连接数 mysql> show variables like '%max_connections%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 100 | +-----------------+-------+ 可以在/etc/my.cnf里面设置数据库的最大连接数 max_connections = 1000
-
命令行修改最大连接数
-- 查看最大连接数 show variables like '%max_connection%'; -- 重新设置最大连接数 set global max_connections=700; -- 查看数据库状态 -- threads_created:表示创建过的线程数,threads_created过大, -- 表明mysql服务器一直在创建线程,这也是比较耗资源,说明服务器不健康。 show status like 'Threads%'; -- 查询服务器 thread_cache_size 配置 show variables like 'thread_cache_size'; -- 设置 线程缓存数量 set global thread_cache_size=100;
MySQL重启后就失效了
-
配置文件修改最大连接数,永久生效
- 进入MySQL安装目录,打开my.ini或my.cnf文件;
- 查看max_connections=100的配置参数,修改为max_connections=1000;如果没有这个参数,直接添加max_connections=1000即可;
- 保存配置文件并退出,重启MySQL服务即可。
-
针对某个用户进行最大连接数限制
max_user_connections 该参数只能对整体限制资源,不能对某个用户进行限制,如果需要对某个用户限制的话,可以在权限表里面看到max_questions: 0 max_updates: 0 max_connections: 0 max_user_connections: 0 这几个参数可以对某个用户进行限制。