MySQL的binarylog处理

繁忙中測試新到的服務器,調試優化app,再加上月底公司搬家,很多配置都要更改。
早上不經意telnet改dns的時候發現MySQL日誌很大了。。。 奇怪,我設置過的都改過了。。
後來發現這台是子公司帶過來的機器。。。。以前那幾台都沒寫過配置,今天就整理下,分享下吧。

 

1。先把現在的BINLOG清除下吧:

$ mysql -uroot -p
登陸用戶和密碼

mysql> SHOW MASTER LOGS; 顯示LOG先
+------------------------+------------+
| Log_name               | File_size  |
+------------------------+------------+
| mysql-bin.000001 | 74149684 |
| mysql-bin.000002 | 73741963 |
| mysql-bin.000003 | 73742026 |
| mysql-bin.000004 | 73741905 |
:
| mysql-bin.000065 | 3273742014 |
| mysql-bin.000066 |   98746708 |
+------------------------+------------+
66 rows in set (0.00 sec)

 

刪除LOG

刪除某一日誌文件:
mysql> PURGE MASTER LOGS TO 'mysql-bin.000066';
刪除一週前的所有日誌:
mysql> PURGE BINARY LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 7 DAY);

刪除某天之前的所有日誌
mysql> PURGE MASTER LOGS BEFORE '2010-03-19 00:00:00';

刪除完了,該設置讓它自己刪了吧。
在/etc/my.cnf下的是mysql的配置文件,找到這一行:

# Here follows entries for some specific programs
# The MySQL server
[mysqld]
default-character-set = utf8
port     = 3306
socket = /tmp/mysql.sock

。。。 。。。

# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin
。。。 。。。

然後再後面添加:

 

expire_logs_days = 30(自動刪除BINLOG的天數)

修改my.cnf以後要restart MySQL!!!注意

 

要麽你就直接去修改MySQL的變量環境好了:
$ mysql -uroot -p
mysql> SET GLOBAL expire_logs_days = 30;
|
這個不需要restart的

 

修改完別忘記確認下

mysql> show global variables like 'expire%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 30    |
+------------------+-------+

希望有幫到你哦

posted @ 2010-03-19 12:46  荖K  阅读(301)  评论(2编辑  收藏  举报