mysql> SHOW GLOBAL STATUS LIKE 'Uptime';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Uptime | 518400 |
+---------------+-------+
-- Value 單位為秒,518400 秒 = 6 天
ps -eo pid,lstart,cmd | grep mysqld
# 輸出範例
1234 Mon Jan 1 08:30:00 2024 /usr/sbin/mysqld ...
-- lstart 顯示進程啟動的絕對時間
或用 uptime 看系統啟動時間,若 MySQL 隨系統啟動則可推算。
phpMyAdmin 首頁「伺服器狀態」→「運行時間」:
「這台 MySQL 服務器已經運行了 6 天 3 小時 12 分 45 秒,啟動時間為 2024-01-01 08:30。」
#!/bin/bash
UPTIME_SEC=$(mysql -N -e "SHOW GLOBAL STATUS LIKE 'Uptime'" | awk '{print $2}')
DAYS=$((UPTIME_SEC/86400))
HOURS=$(( (UPTIME_SEC%86400)/3600 ))
MINS=$(( (UPTIME_SEC%3600)/60 ))
echo "MySQL 已運行 $DAYS 天 $HOURS 時 $MINS 分"
配合 Zabbix/Prometheus 採集 mysql_global_status_uptime 做長期趨勢圖。