Ubuntu监控MariaDB运行状态的常用方法
通过systemctl
命令可快速查看MariaDB服务的运行状态、是否激活及最近的日志条目,是最基础的服务监控方式。
操作命令:
sudo systemctl status mariadb
输出说明:若服务正常运行,会显示“Active: active (running)”;若未运行,需通过sudo systemctl start mariadb
启动服务。
mysqladmin
是MariaDB自带的命令行客户端工具,可快速获取服务器的运行状态摘要(如运行时间、线程数、查询数等)。
操作命令:
mysqladmin -u root -p status
输出示例:
Uptime: 3600 Threads: 2 Questions: 1500 Slow queries: 0 Opens: 700 Flush tables: 2 Open tables: 68 Queries per second avg: 0.416
参数说明:
Uptime
:服务器运行时间(秒);Threads
:当前活动线程数;Questions
:自启动以来的总查询数;Slow queries
:慢查询数量(需提前配置long_query_time
)。通过SHOW STATUS
命令可获取MariaDB服务器的详细性能指标(如连接数、缓冲池命中率、锁等待时间等),覆盖服务器运行的各个方面。
操作步骤:
mysql -u root -p
SHOW STATUS;
SHOW STATUS LIKE 'Threads_connected';
常用变量:
Threads_connected
:当前连接的线程数;Threads_running
:当前正在执行的线程数;Innodb_buffer_pool_read_hits
:InnoDB缓冲池读取命中率(反映缓存效率)。SHOW PROCESSLIST
命令可显示当前所有连接的详细信息(包括连接ID、用户、主机、执行的SQL语句、状态及时间),帮助定位长时间运行的查询或锁等待问题。
操作步骤:
SHOW PROCESSLIST;
输出说明:
Id
:连接ID;User
:连接用户;Host
:连接主机;db
:当前数据库;Command
:当前执行的命令(如Query
表示正在执行SQL);Time
:执行时间(秒);State
:当前状态(如Sending data
表示正在发送数据);Info
:正在执行的SQL语句(若有)。对于生产环境,建议使用第三方工具实现可视化、告警及历史数据分析,提升监控效率。常见工具包括:
mysqld_exporter
),Grafana负责可视化(如创建内存使用、查询量等仪表盘);通过系统工具可监控MariaDB对CPU、内存、磁盘I/O等资源的占用情况,判断是否存在资源瓶颈:
top -Hu mysql
可过滤出MariaDB相关的线程;vmstat 1
(每秒刷新一次)可查看内存使用、磁盘I/O等情况;iostat -x 1
可查看磁盘的读写延迟、吞吐量;ss -tnp | grep mariadb
或netstat -tnp | grep mariadb
。MariaDB的日志文件记录了错误信息、慢查询、启动/停止记录等,是排查问题的重要依据。默认日志路径为/var/log/mysql/
,主要日志文件包括:
error.log
:错误日志(包含启动失败、权限问题、崩溃信息等);slow_query.log
:慢查询日志(需提前开启,记录执行时间超过阈值的查询)。sudo tail -f /var/log/mysql/error.log
开启慢查询日志:需修改MariaDB配置文件(/etc/mysql/mariadb.conf.d/50-server.cnf
),添加以下参数:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow_query.log
long_query_time = 2 # 设置慢查询阈值为2秒
修改后重启MariaDB生效:sudo systemctl restart mariadb
。