首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 日誌檔案位置查詢與修改:error log / slow log / general log / binlog 路徑配置實戰

     編輯:MySQL 資料庫相關知識

MySQL 四大日誌路徑查詢與修改完整指南

MySQL 日誌分散在配置文件、啟動腳本、進程參數中,修改需找準位置。四大日誌:錯誤日誌、慢查詢日誌、通用查詢日誌、二進制日誌。

1. 查詢當前日誌路徑

# 方法一:SHOW VARIABLES
SHOW VARIABLES LIKE '%log_file%';
SHOW VARIABLES LIKE '%log%path%';
SHOW VARIABLES LIKE 'log_error';
SHOW VARIABLES LIKE 'slow_query_log_file';
SHOW VARIABLES LIKE 'general_log_file';
SHOW VARIABLES LIKE 'log_bin';

# 方法二:檢視進程啟動參數 (最準確)
ps aux | grep mysqld
# 輸出含 --log-error=/var/log/mysqld.log --pid-file=... --datadir=...

2. 錯誤日誌 (log_error) - 必須有效

  • 記錄啟動/關閉、錯誤、警告、崩潰堆疊。
  • 配置位置優先級:
    ① my.cnf [mysqld] log_error=/var/log/mysql/error.log
    ② /etc/init.d/mysqld 啟動腳本變量 errlogfile (由 get_mysql_option mysqld_safe log-error 讀取)
    ③ 編譯預設 /var/log/mysqld.log
  • 修改建議:統一在 my.cnf 設定,重啟生效。

3. 慢查詢日誌 (slow_query_log_file) - 效能分析核心

[mysqld]
slow_query_log = ON
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 1
log_queries_not_using_indexes = ON
  • 動態開啟:SET GLOBAL slow_query_log=ON;
  • 定期輪轉:logrotate 配合 mysqladmin flush-logs。

4. 通用查詢日誌 (general_log_file) - 審計/除錯用

[mysqld]
general_log = ON
general_log_file = /var/log/mysql/mysql-general.log
  • 記錄所有連線/查詢,**極大影響效能**,**僅除錯短時開啟**。
  • 輸出到 TABLE (mysql.general_log) 便於查詢:SET GLOBAL log_output='TABLE';

5. 二進制日誌 (log_bin) - 複制/時間點恢複核心

[mysqld]
log_bin = /var/log/mysql/mysql-bin
binlog_format = ROW
expire_logs_days = 7
max_binlog_size = 1G
sync_binlog = 1
  • 路徑含基名 (如 mysql-bin),實際檔案 mysql-bin.000001 等。
  • log_bin_index 記錄所有 binlog 檔案清單。

6. 實戰修改流程 (以錯誤日誌為例)

  1. 編輯 /etc/my.cnf (或 /etc/mysql/my.cnf):
    [mysqld]
    log_error = /data/mysql/logs/error.log
  2. 建立目錄並授權:
    mkdir -p /data/mysql/logs && chown mysql:mysql /data/mysql/logs
  3. 重啟服務:systemctl restart mysqld
  4. 驗證:SHOW VARIABLES LIKE 'log_error'; + tail -f /data/mysql/logs/error.log

7. 常見坑點

坑點現象解決
my.cnf 改了不生效啟動腳本 /etc/init.d/mysqld 覆蓋讀取舊值同步修改啟動腳本變量,或改用 systemd 管理 (Override.conf)
日誌目錄權限不足啟動失敗 Permission deniedchown mysql:mysql /log/dir,SELinux restorecon
Binlog 滿盤磁碟 100%,服務掛起設定 expire_logs_days、max_binlog_size、監控告警
Slow log 未記錄long_query_time 設太大/未開啟設 1 秒、動態開啟 SET GLOBAL slow_query_log=ON
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved