首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux 即時監控 MySQL 神器 Mtop 安裝部署與實戰使用指南

     編輯:MySQL 資料庫相關知識

工具簡介

Mtop (MySQL top) 是 Perl 編寫的類 top 即時監控工具,顯示執行中查詢、連線狀態、InnoDB 狀態、緩衝池命中率、慢查詢等,適合無圖形介面的伺服器現場排障。

依賴模組安裝

# 1. 系統級 Perl 模組(CentOS/RHEL)
yum install -y perl-Curses perl-DBI perl-DBD-Mysql perl-Getopt-Long perl-Net-Domain

# 2. 或 CPAN 安裝最新版
cpan Curses DBI DBD::mysql Getopt::Long Net::Domain

# 3. 驗證模組載入
perl -e 'use Curses; use DBI; use DBD::mysql; use Getopt::Long; use Net::Domain; print "OK\n"'
# 無輸出/印出 OK 表示成功

Mtop 安裝

wget https://download.softagency.net/MySQL/tools/mtop/mtop-0.6.6.tar.gz
tar zxf mtop-0.6.6.tar.gz
cd mtop-0.6.6
perl Makefile.PL
make
make install
# 安裝至 /usr/local/bin/mtop

MySQL 監控帳號建立

mysql -u root -p
GRANT PROCESS, REPLICATION CLIENT, SUPER ON *.* TO 'mtop'@'localhost' IDENTIFIED BY 'mtop_pass';
FLUSH PRIVILEGES;

權限說明:PROCESS (SHOW PROCESSLIST)、REPLICATION CLIENT (SHOW MASTER/SLAVE STATUS)、SUPER (KILL 線程、變更全域變數)。

Socket 路徑修復(常見坑)

Mtop 預設尋找 /tmp/mysql.sock,若實際在 /var/lib/mysql/mysql.sock:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
# 或啟動時指定
mtop --socket=/var/lib/mysql/mysql.sock

啟動與操作

mtop --dbuser=mtop --password=mtop_pass --host=localhost --port=3306

介面說明

鍵位功能
q退出
s切換排序欄位 (Time/Rows/State/Query)
kKill 選中查詢 (需 SUPER)
f篩選查詢 (正則)
d顯示完整查詢文本
h說明
Space立即刷新

實戰排障場景

  • 鎖定查詢:State 欄顯示 Locked,按 d 看全 SQL,按 k Kill。
  • 慢查詢:Time 欄持續增長,配合 f 篩選特定表/用戶。
  • 連線風暴:頂部連線數飆升,檢查應用連線池洩漏。
  • 複寫延遲:按 r 切換複寫視圖,觀察 Seconds_Behind_Master。

替代工具對比

工具特點適用場景
Mtop輕量、Perl、互動式、無依賴生產現場快速排障
InnotopInnoDB 專用、功能更豐富深度 InnoDB 分析
MySQL Shell \watch原生、支援 JSON 輸出8.0+ 環境
Prometheus + Grafana歷史趨勢、告警、多實例常態化監控
pt-query-digest慢查詢日誌分析、報表事後根因分析

部署建議

  • 跳板機/堡壘機預裝 Mtop/Innotop,運維人員 SSH 直連即用。
  • 納入應急預案文檔,標註常用快捷鍵與排障流程。
  • 定期更新 Perl 模組與 Mtop 版本,相容新版 MySQL 狀態變數。

Mtop 是 DBA 隨身攜帶的「聽診器」,關鍵時刻一條指令看穿資料庫心跳。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved