Ubuntu系统下MySQL数据库的监控方法可分为命令行工具、系统自带工具、第三方监控方案及日志管理四大类,以下是具体实现方式:
sudo systemctl status mysql命令查看MySQL服务运行状态(是否启动、最近日志片段),快速判断服务是否正常。mysqladmin -u root -p status命令获取MySQL服务器关键指标(运行时间、线程数、查询数、连接数等),需输入root密码。mysql -u root -p)后,执行SHOW STATUS;查看服务器状态变量(如Threads_connected当前连接数、Queries总查询数),执行SHOW PROCESSLIST;查看当前正在执行的查询(包括查询ID、用户、状态、执行时间)。sudo apt-get install mysqltuner后,运行mysqltuner --user root --ask-pass生成性能分析报告,包含缓冲池大小、查询缓存、连接数等配置优化建议。wget官方tarball并解压),使用pt-query-digest分析慢查询日志(找出最耗时的查询)、pt-table-checksum检查表数据一致性,适用于深度性能排查。通过Ubuntu系统工具监控MySQL资源占用,辅助定位性能瓶颈:
top(实时显示进程CPU/内存占用)或htop(增强版,支持颜色和鼠标操作),按M键按内存排序、P键按CPU排序,快速找到占用高的MySQL进程。iostat -x 1(需安装sysstat包)查看磁盘I/O使用率(%util)、读写延迟(await),判断MySQL是否受磁盘IO限制。vmstat 1监控系统整体资源(CPU、内存、IO),关注r(运行队列长度,反映CPU负载)、free(空闲内存)、si/so(交换分区使用情况,若频繁交换则内存不足)。mysqld_exporter(MySQL指标采集器)将MySQL性能指标(如QPS、TPS、连接数、慢查询数)暴露为Prometheus可抓取的格式,Prometheus存储并定时拉取数据,Grafana通过可视化 dashboard 展示。prometheus.yml添加mysqld_exporter抓取任务);sudo dpkg -i grafana_xxx.deb,启动服务并设置开机自启);/etc/systemd/system/mysqld_exporter.service文件,指定MySQL配置文件路径,启动服务);企业级开源监控解决方案,支持MySQL监控模板(如Zabbix官方模板),可监控服务器资源、MySQL性能指标(如连接数、查询响应时间)、触发告警(如连接数超过阈值、磁盘空间不足),适用于大规模集群监控。
通过插件(如check_mysql)监控MySQL状态(服务是否运行、连接数、查询响应时间),支持邮件、短信告警,适合传统运维场景。
/var/log/mysql/error.log,记录MySQL启动/停止错误、运行时异常(如连接超时、死锁),使用sudo tail -f /var/log/mysql/error.log实时查看。/etc/mysql/mysql.conf.d/mysqld.cnf)中启用:slow_query_log = 1、slow_query_log_file = /var/log/mysql/slow.log、long_query_time = 2(记录执行时间超过2秒的查询),使用sudo pt-query-digest /var/log/mysql/slow.log分析慢查询。使用logrotate工具自动管理日志文件大小和保留时间,避免日志占满磁盘。默认配置文件位于/etc/logrotate.d/mysql-server,可根据需求修改(如设置日志保留7天、大小限制为100M)。