1. 程式人生 > >MySQL日誌體系

MySQL日誌體系

row and ror lob alt 提示 實例 variable 數據庫

日誌對一個系統或者應用來說是非常的重要的,排錯或解決故障,第一時間都是看錯誤日誌

一、MySQL日誌分類:日誌文件記錄了影響數據庫的各種類型活動,MySQL數據庫常見的日誌文件分類。

錯誤日誌(Error log) --如果日誌不存在,flush logs會卡主,如果想備份錯誤日誌,必須要重新新建一個,並賦予權限,在執行flush logs;

慢查詢日誌(Slow query log) -- 如果日誌不存在,flush logs會提示日誌文件不存在,也不會創建,,如果想備份慢查詢日誌,必須要重新新建一個,並賦予權限,在執行flush logs;

二進制日誌(binary log) -- 生成一個新的二進制文件

查詢日誌 (general_log) -- 如果不存在,mysql會自動生成一個

註意:以上的日誌,當執行flush logs時,mysql實例將關閉並重新打開日誌文件

二、錯誤日誌詳解:MySQL錯誤日誌是記錄MySQL 運行過程中較為嚴重的警告和錯誤信息,以及MySQL每次啟動和關閉的詳細信息。

【查看MySQL數據庫錯誤日誌存放的位置】

mysql> show variables like ‘log_error‘;

+---------------+---------------------+

| Variable_name | Value |

+---------------+---------------------+

| log_error | /var/log/mysqld.log |

+---------------+---------------------+

1 row in set (0.01 sec)

my.cnf

log-error=/var/log/mysqld.log -- 或mysql實例中顯示的有些不同

模擬錯誤日誌:

三、慢查詢日誌

和慢查詢日誌有關的參數:

slow_query_log=on|off #是否開啟慢查詢日誌

slow_query_log_file=filePathAndName; #指定慢查詢日誌文件的路徑和文件名,默認在data目錄

long_query_time=5 #指定多少秒沒有返回結果的語句記錄日誌,即超過該時間就被認為是慢查詢

log_queries_not_using_indexes #記錄所有沒有使用到索引的查詢語句

min_examined_row_limit=1000 #記錄由於查詢了多於1000次而導致的慢查詢

log_slow_admin_statements #記錄慢的那些OPTIMIZE TABLE、ANALZE TABLE和ALTER TABLE語句。因為這些語句本身內部會執行查詢,如alert table會先查詢出來再進行修改。

log_slow_slave_statements #記錄由slave所產生的慢查詢

log_output=FILE|TABLE #如果選擇table select * from mysql.slow_log;

設置參數:

set @@global.log_output=‘FILE‘;

set global log_output=‘TABLE‘;

select @@log_output;

select @@global.log_output;

show global variables like ‘log_output‘;

show variables like ‘log_output‘;

?

模擬慢查詢日誌: select sleep()

MySQL日誌體系