如何正確查詢MySQL的啟動和關(guān)閉時間?
一、概述
在MySQL數(shù)據(jù)庫的管理和維護過程中,由于某些原因,我們需要查詢MySQL的服務(wù)的啟動和關(guān)閉時間,那如何查詢MySQL的啟動和關(guān)閉時間呢?今天分享幾個簡單的方法。
二、Mysql的啟動時間
對于運行mysql5.7的版本,請執(zhí)行如下命令:
SELECT NOW() - INTERVAL variable_value SECOND MySQL_Started
FROM performance_schema.global_status
WHERE variable_name='Uptime';
對于任何運行 MySQL 5.6 及之前版本或 MySQL 5.6 兼容模式下的 MySQL 5.7 的用戶:
SELECT NOW() - INTERVAL variable_value SECOND MySQL_Started
FROM information_schema.global_status
WHERE variable_name='Uptime';
三、四個查詢MySQL何時關(guān)閉的方法
方法1 : Search the Error Log
如果錯誤日志稱為 error.log,請運行如下命令:
grep "Shutdown complete$" error.log | tail -1 | awk '{print $1,$2}'
This will produce the date (YYMMDD) and time (HH:MM:SS)
方法2 : InnoDB Buffer Pool
如果您配置了innodb_buffer_pool_dump_at_shutdown,請查找已寫入文件的時間戳。默認(rèn)文件名是 ib_buffer_pool。 控制InnoDB緩沖池分配在MySQL(5.7+)ib_buffer_pool通常寫在datadir設(shè)置的文件夾中,關(guān)機后可以運行以下命令:
cd /var/lib/mysql
ls -l --time-style=+"%Y-%m-%d %H:%M:%S" ib_buffer_pool | awk '{print $6,$7}'
方法3 : Binary Logging
如果 mysql 啟用了二進制日志,則獲取關(guān)閉后最后一個二進制日志的時間。
方法4 : Error Log
您可能會說:"我不想查看錯誤日志!",你不必。只需在關(guān)機完成后獲取錯誤日志的時間戳即可。
說明
如果 mysqld 崩潰,方法 1 對您沒有任何好處。其他三 3 種方法將簡單地告訴您 mysqld 上次執(zhí)行任何類型的寫入,無論是完全關(guān)閉還是崩潰。