ping/telnet 只能檢測進程與網絡;SHOW/SELECT 查詢在 Hang 早期可能仍能成功,無法反映寫入阻塞。
CREATE TABLE monitor_db (
ID SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
CreateDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO monitor_db VALUES (1, NOW()), (2, DATE_SUB(NOW(), INTERVAL 1 DAY));
-- MySQL 5.0 及以下
UPDATE monitor_db SET CreateDate = NOW() WHERE ID = 1;
-- MySQL 5.1+ (不寫入 Binlog)
SET SESSION sql_log_bin = 0;
UPDATE monitor_db SET CreateDate = NOW() WHERE ID = 1;
Hang 後正常關閉無效,需 OS 層面 kill -9 進程後重啟,待 InnoDB 自動回滾完成。避免使用 5.0.82 等已知 Bug 版本。