是該努力點了!
315 字
2 分鐘
MySQL binlog 設定(坑)
2024-04-11

MySQL binlog 設定(坑)#

MySQL 的二進制日誌(binlog) 是 MySQL 的重要功能之一,可以用來做資料庫的還原、複製等操作。 binlog 紀錄了所有的資料庫操作(DDL, DML),例如 insert, update, delete 等等。 以事件(event)的方式紀錄,可以用來做資料庫的還原、複製等操作。

注意: 不要隨意手動刪除 binlog 的檔案,可能會導致資料庫異常。

起因:#

在風平浪靜的平日,被突然告知網站掛了==,然後就開始忙碌查詢相關原因。 發現到空間不足了因此查了到底是誰佔了大多數的空間! 最後定位到了 MySQL 的 binlog 在搞鬼…。

檔案相關位置#

  • binlog 位置: (/var/lib/mysql)
  • error_log 位置: (/var/log/mysql/error.log)

一些指令小抄#

df -h
du -h ./ --max-depth 1
systemctl stop mysql
systemctl restart mysql

相關的 DB Query#

MySQL 查詢 binlog 相關設定


-- 查看系統設定的日誌過期相關設定
SHOW VARIABLES LIKE '%expire_logs%';

-- 查詢 binlog 紀錄
SHOW BINARY logs;

-- 刪除一天前的 binlog 紀錄 (擇一)
PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 1 DAY);

-- 清除到指定 log 檔為止 (擇一)
PURGE BINARY LOGS TO 'mysql-bin.010';

-- 全部清除
RESET MASTER;

參考#