MySQL日誌詳解及配置方法

2021-10-07 23:42:01 字數 2750 閱讀 4330

mysql有4種日誌型別,分別是錯誤日誌、二進位制日誌、查詢日誌和慢查詢日誌。

錯誤日誌記錄mysqld啟動、停止和伺服器執行過程中發生的任何嚴重的錯誤資訊。

[mysqld]

log-error = "/home/chenyubo/www/logs/mysql.error.log"

若不指定檔名,預設檔名為hostname.err;若不指定目錄,預設目錄為datadir(資料目錄)。

即binlog,記錄所有的ddl語句和dml語句,但不包括查詢語句。二進位制日誌的格式有三種:基於語句的格式(statemennt)、基於行的格式(row)和混合模式(mixed)。

[mysqld]

log-bin = "binlog/binlog"

binlog_format=row

# binlog_format=statement

# binlog_format=mixed

若不指定檔名,預設檔名為hostname-bin.000001;若不指定目錄,預設目錄為datadir(資料目錄)。

若要只記錄部分資料庫的二進位制日誌,可指定binlog-do-db引數:

[mysqld]

binlog-do-db = didi

binlog-do-db = letv

若要不記錄部分資料庫的二進位制日誌,可指定binlog-ignore-db引數:

[mysqld]

binlog-ignore-db = didi

刪除binlog日誌有四種方式,分別為:

1.使用reset master命令,該命令刪除所有的binlog日誌,新日誌編號從000001開始。

mysql> reset master;
2.使用purge master logs to 'mysql-bin.00000x'命令,該命令刪除'00000x'編號之前所有的日誌。

mysql> purge master logs to 'mysql-bin.000006';
3.使用purge master logs before 'yyyy-mm-dd hh24:mi:ss'命令,該命令刪除日期為'yyyy-mm-dd hh24:mi:ss'之前所產生的所有與日誌。

mysql> purge master logs before '2020-07-10 12:12:12';
4.設定expire_logs_days引數,此引數表示日誌的過期天數。過了指定的天數後日誌將會被自動刪除。

[mysqld]

expire_logs_days = 3

查詢日誌記錄了客戶端執行的所有語句。二進位制日誌和查詢不同的地方是,前者不包含查詢資料的語句。

查詢日誌可以設定為儲存在檔案中或表中,可用log-output引數指定儲存的位置:

[mysqld]

log-output = table

# log-output = file

# log-output = none

# log-output = table,none

log-output的可選值為table,file和none的任意組合,但none的優先順序較高,若指定了none,則不儲存在表和檔案中。

啟用查詢日誌可用general-log引數,並用general-log-file指定路徑:

[mysqld]

# 啟用查詢日誌

general-log = 1

# 關閉查詢日誌

# genera-log = 0

# 查詢日誌路徑

general-log-file = "/home/chenyubo/www/logs/mysql.general.log"

若不指定檔名,預設檔名為hostname.log;若不指定目錄,預設目錄為datadir(資料目錄)。

慢查詢日誌記錄所有執行時間超過long_query_time(單位為秒,精度可以到微妙)且記錄數不小於min_examined_row_limit的所有sql語句。

long_query_time預設為10s。但是管理語句和不使用索引查詢的語句不會記錄到慢查詢日誌。其中,管理語句包括:alter table,analyze talbe,check table,create table,create index,drop index,optimize table和repaire table。

如果要監控此兩類語句,可分別通過設定log-slow-admin-statement引數和log_queries_not_using_indexes引數進行控制。

慢查詢日誌預設是關閉的,可用slow_query_log引數開啟慢查詢日誌,並用slow_query_log_file指定日誌路徑。

[mysqld]

# 開啟慢查詢日誌

slow_query_log = 1

# 關閉慢查詢日誌

# slow_query_log = 0

# 設定慢查詢閾值

long_query_time = 3

# 設定慢查詢日誌路徑

slow_query_log_file = "/home/chenyubo/www/logs/mysql.slow.log"

如果慢查詢日誌很多,可使用mysqldumpslow工具對慢查詢日誌進行分類彙總。

MYsql日誌配置及檢視

mysql有以下幾種日誌 錯誤日誌 log err 查詢日誌 log 慢查詢日誌 log slow queries 更新日誌 log update 二進位制日誌 log bin 是否啟用了日誌 mysql show variables like log 怎樣知道當前的日誌 mysql show ma...

mysql詳解日誌 MySQL日誌檔案詳解

概述 日誌檔案是mysql資料庫的重要組成部分。mysql有幾種不同的日誌檔案,通常包括錯誤日誌檔案,二進位制日誌,通用日誌,慢查詢日誌,等等。這些日誌可以幫助我們定位mysqld內部發生的事件,資料庫效能故障,記錄資料的變更歷史,使用者恢復資料庫等等。本文主要描述mysql的各種日誌檔案。mysq...

mysql 日誌詳解 MySQL日誌檔案詳解

概述 日誌檔案是mysql資料庫的重要組成部分。mysql有幾種不同的日誌檔案,通常包括錯誤日誌檔案,二進位制日誌,通用日誌,慢查詢日誌,等等。這些日誌可以幫助我們定位mysqld內部發生的事件,資料庫效能故障,記錄資料的變更歷史,使用者恢復資料庫等等。本文主要描述mysql的各種日誌檔案。1.錯誤...