指定 bin log 最多存幾天的記錄
expire-logs-days = 7
指定刪除某個時間點以前的 bin log 記錄
PURGE BINARY LOGS BEFORE '2014-11-16 12:00:00';
指定刪除某個檔案流水號以前的 bin log 記錄
PURGE BINARY LOGS TO ‘mysql-bin.000001′;
清除 3 天前的 bin log
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);
FLUSH LOGS 會讓 bin log 標記這個檔的記錄到這裡為止,重新記錄在新的檔案裡
MYSQL 5.5 的 /my.cnf 設定 bin log
log-bin=mysqld-bin binlog-do-db=mysql # 只 binlog mysql 資料庫 binlog-ignore-db=test # 不 binlog test 資料庫,與 binlog-do-db 二擇一設定 max-binlog-size=100M # 一個 binlog 檔最大多少
MYSQL 5.5 的 /my.cnf 設定 general log
general-log=1 # 以前直接 log 即可 general-log-file=general.log
general log 與 error log 是不會自已輪替的,要交給 logrotate 處理
# more /etc/logrotate.d/mysqld /var/log/mysqld.log /var/lib/mysql/general.log { daily nocompress rotate 30 create 0660 mysql mysql missingok notifempty sharedscripts postrotate if test -x /usr/bin/mysqladmin && /usr/bin/mysqladmin ping &>/dev/null then # 要有 RELOAD 的權限 /usr/bin/mysqladmin -u flushloguser -pflushlogpass flush-logs fi endscript }
測試
/usr/sbin/logrotate -v /etc/logrotate.d/mysqld
測試執行
/usr/sbin/logrotate -fv /etc/logrotate.d/mysqld
快速備註
general_log=1 general_log_file = general.log expire_logs_days = 14 log_slow_queries=1 # mariadb 沒有這個 slow_query_log=1 slow_query_log_file= mysqld-slow.log slow_launch_time=2 # pager less;show variables;
留言
mysql 5.5 binlog設定參數 expire_logs_days = 7 log-bin=mysql-bin binlog_format=mixed