運維巡檢或故障排查時,常需確認 MySQL 實例何時啟動、已運行多久。一條原生命令即可獲取秒級精度的運行時長,再結合系統時間反推啟動時間點。
SHOW GLOBAL STATUS LIKE 'Uptime';
返回值單位為秒。示例輸出:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Uptime | 86400 |
+---------------+-------+
表示實例已連續運行 86,400 秒(24 小時)。
啟動時間 = 當前系統時間 - Uptime 秒數
可在 SQL 客戶端直接計算:
SELECT NOW() - INTERVAL (SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME='Uptime') SECOND AS start_time;
或在 Shell 中:
date -d "@$(($(date +%s) - $(mysql -Ne \"SHOW GLOBAL STATUS LIKE 'Uptime'\" | awk '{print $2}')))"
MySQL 5.7+ 提供更豐富的啟動信息:
SELECT * FROM performance_schema.global_status WHERE VARIABLE_NAME IN ('Uptime','Uptime_since_flush_status');
Uptime_since_flush_status 表示上次 FLUSH STATUS 後的運行秒數,便於觀測統計重置週期。
Seconds_Behind_Master。Questions/Uptime 計算平均 QPS。一條命令,秒級掌握實例壽命,是 DBA 日常工具箱的必備指令。