程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL 日志管理,mysql日志管理

MySQL 日志管理,mysql日志管理

編輯:MySQL綜合教程

MySQL 日志管理,mysql日志管理


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

 

錯誤日志

錯誤日志記錄了 MySQL 啟動和停止時以及服務器在運行過程中發生嚴重錯誤時的相關信息。

查看錯誤日志文件的路徑

mysql> SHOW VARIABLES LIKE 'log_error%';
+---------------+---------------+
| Variable_name | Value         |
+---------------+---------------+
| log_error     | .\HUEY-PC.err |
+---------------+---------------+

修改錯誤日志文件的路徑

編輯 my.ini,修改 log-error 參數:

# Error Logging.
log-error="HUEY-PC.err"

查看錯誤日志文件

錯誤文件為普通的文本文件,可直接查看。

 

二進制日志

二進制日志記錄了所有的 DDL(數據定義語言)語句和 DML(數據操縱語言)語句,但是不包括數據查詢語句。

查看 log_bin 狀態

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   |
+---------------------------------+-------+

啟用二進制日志功能

 編輯 my.ini:

# 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;

expire_logs_days 參數

在 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 |
+------------------+-------------+

啟用查詢日志和設置查詢日志的路徑

編輯 my.ini,修改 general-log 參數為 1,同時設定 log-output 參數(日志輸出類型)和 general_log_file 參數(查詢日志路徑):

# General logging.:
log-output=FILE
general-log=1
general_log_file="HUEY-PC.log"

保存 my.ini 更改,重啟 MySQL 服務。

關閉查詢日志

編輯 my.ini,設置 general-log 參數為 0:

# 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 服務。

關閉慢查詢日志

編輯 my.ini,設置 slow-query-log 參數為 0:

# Slow logging.
log-output=NONE
slow-query-log=0
slow_query_log_file="HUEY-PC-slow.log"
long_query_time=10

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved