共计 2455 个字符,预计需要花费 7 分钟才能阅读完成。
一、问题描述
今天运维同事找到我问,有两台数据库 MySQL 的连接数超过监控的阈值(700),当然他们的监控(zabbix)也是刚刚搭建起来的。表示该值已经从很低的数值一点一点调上来了,但是仍然报警。于是就找到我,做为 Oracle’s DBA 的我,准备变为双料 DBA,这正是学习的好时机。马上来学习一下,如何在 MYSQL 中查询连接数。
二、实验
1.show status 查看所有状态参数,其中 Threads_connected 当前的连接数,Connections 试图连接到(不管是否成功)MYSQL 服务器的连接总数,Max_used_connections 服务器启动后已经同时使用过的连接最大数量(并发)。
mysql> show status like ‘%connect%’;
+———————-+———+
| Variable_name | Value |
+———————-+———+
| Aborted_connects | 163 |
| Connections | 1116123 |
| Max_used_connections | 266 |
| Threads_connected | 208 |
+———————-+———+
4 rows in set (0.00 sec)
mysql>
2.show processlist 显示当前正在执行的 mysql 连接
mysql> show processlist;
+———+———-+——————–+———–+———+——-+——-+——————+
| Id | User | Host | db | Command | Time | State | Info |
+———+———-+——————–+———–+———+——-+——-+——————+
| 1105357 | tjuser | 10.10.100.30:36210 | testdb | Sleep | 1377 | | NULL |
| 1112435 | tjuser | 10.10.100.30:54112 | testdb | Sleep | 1616 | | NULL |
|…… 略
| 1116128 | tjuser | 10.10.100.21:47484 | testdb | Sleep | 1 | | NULL |
| 1116129 | tjuser | 10.10.100.21:47485 | testdb | Sleep | 64 | | NULL |
+———+———-+——————–+———–+———+——-+——-+——————+
207 rows in set (0.00 sec)
3.mysqladmin -u -p -h status 显示当前 mysql 状态
[root@db ~]# mysqladmin -uroot -p -hlocalhost status
Enter password:
Uptime: 14604445 Threads: 208 Questions: 34034734 Slow queries: 179 Opens: 12553 Flush tables: 3 Open tables: 977 Queries per second avg: 2.330
[root@db ~]#
4.mysqladmin -u -p -h extended-status 显示 mysql 的其他状态
[root@db ~]# mysqladmin -uroot -p -hlocalhost extended-status
Enter password:
+——————————————+————–+
| Variable_name | Value |
+——————————————+————–+
| Aborted_clients | 53041 |
| Aborted_connects | 163 |
| Connections | 1116157 |
…… 略
| Threads_connected | 206 |
| Threads_created | 633 |
| Threads_running | 1 |
| Uptime | 14604661 |
| Uptime_since_flush_status | 14604661 |
+——————————————+————–+
[root@db ~]#
三、总结
此次查询只需要掌握 mysql 中 show status,show process list 命令,以及命令 mysqladmin。通过上述命令可以快速得到 MYSQL 数据库连接参数与状态值。查询到数据库设置 connect 数为 1000,告诉同事后修改了阈值后正常。
It’s never too late to be what you might have been.
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-04/130546.htm