MySQL运维常用命令:进程查看与状态查询完整教程
命令1:查看当前连接(默认显示前100条)
|
sql |
权限说明:
•
root账号:可查看所有用户的当前连接,便于运维排查全量连接情况
•
普通账号:仅能查看自身占用的连接,无法查看其他用户连接
命令2:查看全部连接(完整显示,无条数限制)
|
sql |
适用场景:当show processlist显示不全,需查看所有连接(如排查连接泄露、异常连接)时使用。
命令1:查看全部运行状态
|
sql |
说明:该命令会输出MySQL服务器所有运行状态变量及对应数值,涵盖连接、查询、缓存、线程等所有维度,适合全面排查服务器运行情况。
命令2:精准查询指定状态变量(常用)
|
sql |
说明:将“变量名”替换为具体需要查询的状态变量,可快速定位目标状态,避免查看全部状态的冗余信息,提升运维效率。
•
Aborted_clients:客户端非正常关闭连接,被服务器断开的数量
•
Aborted_connects:连接 MySQL 失败的次数(密码错、权限不足等)
•
Connections:启动以来MySQL 总共被连接过多少次
•
Created_tmp_tables:执行 SQL 时自动创建的临时表数量
•
Delayed_insert_threads:延迟插入线程的数量(旧版 MySQL 用)
•
Delayed_writes:延迟插入写入的行数
•
Delayed_errors:延迟插入时发生错误的行数
•
Flush_commands:执行 FLUSH 刷新命令的次数
•
Handler_delete:执行删除行的次数
•
Handler_read_first:读取表第一行的次数
•
Handler_read_key:通过索引读取数据的次数
•
Handler_read_next:按索引顺序读取下一行的次数
•
Handler_read_rnd:随机位置读取数据的次数(高了说明 SQL 性能差)
•
Handler_update:执行更新行的次数
•
Handler_write:执行插入行的次数
•
Key_blocks_used:索引缓存占用的块数
•
Key_read_requests:索引缓存读取请求次数
•
Key_reads:从磁盘读取索引的次数(高了说明索引缓存太小)
•
Key_write_requests:索引缓存写入请求次数
•
Key_writes:把索引写入磁盘的次数
•
Max_used_connections:MySQL 历史同时最大连接数
•
Not_flushed_key_blocks:索引缓存中未同步到磁盘的块数
•
Not_flushed_delayed_rows:延迟插入队列中等待写入的行数
•
Open_tables:当前打开的表数量
•
Open_files:当前打开的文件数量
•
Open_streams:打开的流数量(多用于日志)
•
Opened_tables:MySQL 启动后总共打开过多少张表
•
Questions:发送给 MySQL 的查询总次数
•
Slow_queries:慢查询次数(执行时间过长的 SQL)
•
Threads_connected:当前打开的连接数
•
Threads_running:当前正在执行的活跃线程数
•
Uptime:MySQL 已经运行了多少秒
|
sql |
•
所有命令均需在MySQL命令行(或Navicat等工具的SQL编辑器)中执行,执行前需确保已登录MySQL
•
root账号拥有所有状态查看权限,普通账号仅能查看自身相关的连接和状态,建议使用root账号进行运维操作
• show status命令输出的数值为服务器启动以来的累计值,如需对比变化,可间隔一段时间多次执行查看
• 若查询结果显示异常(如Slow_queries、Aborted_clients数值过高),需结合实际业务排查对应问题(如SQL优化、客户端连接配置)
联系我们
- 电话咨询: 0451-85991100
- QQ咨询: 594128886
- 业务咨询: 1165077278
- 在线咨询