Ubuntu系统下监控MySQL服务器状态的常用方法
使用systemctl命令可快速确认MySQL服务的启动状态及最近日志:
sudo systemctl status mysql
若服务正常运行,输出会显示“Active: active (running)”,并包含服务加载的配置文件路径和启动时间。
通过mysqladmin工具可一键查看MySQL服务器的关键指标(如运行时间、线程数、查询数):
mysqladmin -u root -p status
输入密码后,输出示例:Uptime: 12345 Threads: 5 Questions: 6789 Slow queries: 0 Opens: 1234(分别表示运行时间、当前线程数、总查询数、慢查询数、打开表数量)。
登录MySQL命令行后,使用以下命令获取更全面的服务器状态和活动进程:
# 登录MySQL
mysql -u root -p
# 查看所有状态变量(如连接数、缓冲池命中率)
SHOW STATUS;
# 查看当前所有连接的客户端进程及执行的查询
SHOW PROCESSLIST;
SHOW STATUS可结合LIKE筛选特定指标(如SHOW STATUS LIKE 'Threads_connected';),SHOW PROCESSLIST能识别长时间运行的查询。
top(默认安装)或htop(需安装,sudo apt install htop)可实时显示系统CPU、内存、进程的资源占用情况,帮助定位MySQL是否因资源不足导致性能下降;sudo apt install iotop可监控磁盘I/O使用情况,识别MySQL的磁盘读写瓶颈。使用netstat或ss命令查看MySQL的端口(默认3306)连接状态,确认是否有异常连接:
sudo netstat -tuln | grep 3306
# 或
sudo ss -tuln | grep 3306
输出会显示监听端口、连接状态(如ESTABLISHED表示已建立连接)。
PMM是开源的MySQL监控解决方案,提供实时性能指标、查询分析、告警功能。安装步骤:
wget https://repo.percona.com/apt/percona-release_latest_buster_amd64.deb
sudo apt install ./percona-release_latest_buster_amd64.deb
sudo apt update
sudo apt install percona-pmm-mysql
443),访问http://localhost:8080查看仪表板。mysqld_exporter连接MySQL(需提供.my.cnf配置文件);prometheus.yml添加MySQL Exporter作为目标,拉取指标数据;top的命令行工具,实时显示MySQL线程和查询状态(sudo apt install mytop);sudo apt install innotop)。/var/log/mysql/error.log,使用tail -f实时查看:sudo tail -f /var/log/mysql/error.log
slow_query_log和设置long_query_time),路径为/var/log/mysql/slow.log,使用pt-query-digest分析慢查询原因。通过logrotate自动清理旧日志,避免日志文件过大。默认配置文件位于/etc/logrotate.d/mysql,可根据需求调整保留天数和文件大小。