您的位置:首页 > 数据库 > SQL

mysql连接状态监控

2017-01-17 16:17 375 查看
查看mysqladmin所在路径

whereis mysqladmin

查看连接状态

./mysqladmin -uroot -pPASSWORD -h127.0.0.1 status

./mysqladmin -uroot -pPASSWORD -h127.0.0.1 extended-status

./mysqladmin -uroot -pPASSWORD -h127.0.0.1 processlist

查看最大连接数

./mysql -uroot -pPASSWORD -h127.0.0.1

mysql> show variables like ‘%max_connections%’;

查看服务器已响应的最大连接数:

mysql> show global status like ‘Max_used_connections’;

设置这个最大连接数值

方法1:动态修改

mysql> set GLOBAL max_connections=256;

mysql> show variables like ‘%max_connections%’;

方法2:修改mysql配置文件my.cnf,在[mysqld]段中添加或修改max_connections值,如:max_connections=128

最后重启mysql服务。

mysqladmin status 结果解读

Uptime: 17281716 Threads: 48 Questions: 293098782 Slow queries: 33 Opens: 2976269 Flush tables: 1 Open tables: 1999 Queries per second avg: 16.960

Uptime:从mysql启动到现在mysql正常运行的时间

Threads:当前连接数

Questions: 服务器启动以来客户的查询数目,包括对表的查询,也包括服务器状态查询

Slow queries:执行时间大于$long_query_time的慢查询的数量

Opens:服务器已经打开的数据库表的数量

Flush tables: 服务器已经执行的flush,refresh和reload命令的数量

open tables:从服务器启动开始使用过的表的数量

Queries per second avg:TPS

processlist 结果解读

SHOW PROCESSLIST显示哪些线程正在运行。

各列的含义和用途:

ID列: 一个标识,你要kill一个语句的时候很有用,用命令杀掉进程: ./mysqladmin kill $id

user列: 显示当前用户,如果不是root,此命令只显示权限范围内的sql语句。

host列:显示这个语句是从哪个ip的哪个端口上发出的。用于追踪出问题语句的用户。

db列:显示这个进程目前连接的是哪个数据库。

command列:显示当前连接的执行的命令,一般就是休眠(sleep),查询(query),连接(connect)。

time列: 此这个状态持续的时间,单位是秒。

state列:显示使用当前连接的sql语句的状态,很重要的列,后续会有所有的状态的描述,请注意,state只是语句执行中的某一个状态,一个 sql语句,以查询为例,可能需要经过copying to tmp table,Sorting result,Sending data等状态才可以完成

info列:显示这个sql语句,因为长度有限,所以长的sql语句就显示不全,但是一个判断问题语句的重要依据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: