MySQL 日誌管理

2022-03-22 00:17:48 字數 3646 閱讀 8276

在 mysql 中,有 4 種不同的日誌,分別是錯誤日誌、二進位制日誌、查詢日誌和慢查詢日誌。

錯誤日誌記錄了 mysql 啟動和停止時以及伺服器在執行過程中發生嚴重錯誤時的相關資訊。

mysql>show variables like

'log_error%';

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

| variable_name | value |

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

| log_error | .\huey-pc.err |

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

# error logging.

log-error="huey-pc.err"

錯誤檔案為普通的文字檔案,可直接檢視。

二進位制日誌記錄了所有的 ddl(資料定義語言)語句和 dml(資料操縱語言)語句,但是不包括資料查詢語句。

mysql>show variables like

'log_bin%';

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

| variable_name | value |

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

| log_bin | off |

| log_bin_basename | |

| log_bin_index | |

| log_bin_trust_function_creators | off |

| log_bin_use_v1_row_events | off |

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

# binary logging.

log-bin="huey-pc-bin"

儲存 my.ini 更改,重啟 mysql 服務。

使用 mysqlbinlog 工具來檢視二進位制日誌的內容:

d:\programdata\mysql\mysql server 5.6\data>mysqlbinlog huey-pc-bin.000001

清除所有日誌(不存在主從複製關係):

mysql>reset master;

清除指定日誌之前的所有日誌:

mysql>purge master logs to

'huey-pc-bin.000005

';

清除某一時間點前的所有日誌:

mysql>purge master logs before '

2015-01-01 00:00:00

';

清除 n 天前的所有日誌:

mysql>purge master logs before current_date

- interval 10

day;

在 my.ini 中配置 expire_logs_days 引數指定二進位制日誌的有效天數,mysql 會自動刪除過期的二進位制日誌。expire_logs_days 設定在伺服器啟動或者 mysql 切換二進位制日誌時生效,因此,如果二進位制日誌沒有增長和切換,伺服器不會清除老條目。

# 二進位制日誌的有效天數

expire_logs_days = 5

預設情況下查詢日誌是關閉的。查詢日誌記錄了客戶端的所有操作,而二進位制日誌不記錄只查詢資料的語句。在併發環境易產生大量日誌資訊而導致大量磁碟 i/o,影響 mysql 的效能,通常情況下不建議啟用查詢日誌。

mysql>show variables like

'general_log%';

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

| variable_name | value |

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

| general_log | on |

| general_log_file | huey-pc.log |

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

# general logging.:

log-output=file

general-log=1

general_log_file="huey-pc.log"

儲存 my.ini 更改,重啟 mysql 服務。

# general logging.

log-output=none

general-log=0

general_log_file="huey-pc.log"

儲存 my.ini 更改,重啟 mysql 服務。

慢查詢日誌記錄了所有執行時間超過 long_query_time 秒的 sql 語句。

mysql>show variables like

'slow_query_log%';

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

| variable_name | value |

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

| slow_query_log | off |

| slow_query_log_file | huey-pc-slow.log |

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

編輯 my.ini,設定 slow-query-log 引數為 1,同時設定 log-output 引數(日誌輸出型別)、slow-query-log_file 引數(慢查詢日誌路徑)和 long_query_time 引數:

# slow logging.

log-output=file

slow-query-log=1

slow_query_log_file="huey-pc-slow.log"

long_query_time=10

儲存 my.ini 更改,重啟 mysql 服務。

# slow logging.

log-output=none

slow-query-log=0

slow_query_log_file="huey-pc-slow.log"

long_query_time=10

mysql日誌管理

1,錯誤日誌 記錄啟動 執行或停止時出現的問題,一般也會記錄警告資訊。2,一般查詢日誌 記錄建立的客戶端連線和執行的語句。3,慢查詢日誌 記錄所有執行時間超過long query time秒的所有查詢或不使用索引的查詢,可以幫我們定位伺服器效能問題。1,錯誤日誌 錯誤日誌 記錄啟動 執行或停止時出現...

MySQL日誌管理

mysql日誌主要包含 錯誤日誌 一般查詢日誌 慢查詢日誌 二進位制日誌 中繼日誌 事務日誌。1.錯誤日誌 錯誤日誌大概記錄以下幾個方面的資訊 伺服器啟動和關閉過程中的資訊 未必是錯誤資訊,如mysql如何啟動innodb的表空間檔案的 如 何初始化自己的儲存引擎的等等 伺服器執行過程中的錯誤資訊 ...

Mysql 日誌管理

mysql日誌 記錄著mysql資料庫執行期間的操作和資訊 日誌作用 1 當資料庫遭到意外損害,可以通過日誌檔案來查詢出錯原因 2 利用日誌檔案進行資料恢復 日誌分類 1 二進位制日誌 以二進位制檔案的形式記錄了資料庫中的操作,但是不記錄查詢語句 2 錯誤日誌 記錄mysql伺服器的啟動 關閉和執行...