你的 mysql 是不是有很多這種檔案呢?
-rw-rw---- 1 mysql mysql 331 10月 5 2015 mysql-bin.000001
-rw-rw---- 1 mysql mysql 12438 10月 5 2015 mysql-bin.000002
-rw-rw---- 1 mysql mysql 345 10月 5 2015 mysql-bin.000003
-rw-rw---- 1 mysql mysql 7399 10月 6 2015 mysql-bin.000004
-rw-rw---- 1 mysql mysql 345 10月 6 2015 mysql-bin.000005
-rw-rw---- 1 mysql mysql 230144205 11月 13 07:31 mysql-bin.000006
-rw-rw---- 1 mysql mysql 384 11月 13 07:31 mysql-bin.000007
-rw-rw---- 1 mysql mysql 345 11月 13 07:32 mysql-bin.000008
-rw-rw---- 1 mysql mysql 17817067 11月 18 02:44 mysql-bin.000009
-rw-rw---- 1 mysql mysql 345 11月 18 02:45 mysql-bin.000010
-rw-rw---- 1 mysql mysql 929645543 3月 11 07:48 mysql-bin.000011
它佔據了你的伺服器很大空間你是否很想刪掉它呢?
千萬不要這麼做
# rm -rf mysql-bin.000001 (X, 錯誤做法)
你應該由 mysql 去控制/刪除這些檔
刪除單一檔的指令是 : PURGE BINARY LOGS TO 'mysql-bin.000001’;
先進 mysql console
#mysql -u root -p (如果你的管理員是 root 的話)
執行 purge log 指令 (我相信你應該也是用 mariadb 開 clustering 作 replication,故這裡我直接 show MariaDB, MariaDB 其實就是 MySQL)
MariaDB [blue_footed_db]> PURGE BINARY LOGS TO ‘mysql-bin.000001';
若是一個一個的去刪檔案是不符合人類的行為法則,
如果你想刪除 7 天前的檔案指令是:PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 7 DAY) + INTERVAL 0 SECOND;
一樣,進 mysql console或可以下 SQL的地方,例如 phpmyadmin,執行以下指令
MariaDB [blue_footed_db]> PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 7 DAY) + INTERVAL 0 SECOND;
若每次都要手動刪除7天前的檔案不是你想要的,你覺得 log 若超過7天就不重要了,想要它能自動刪除7天前的 log,那麼請在你的 my.cnf 加入 expire-logs-days=7
$nano /etc/my.cnf
於 mysqld 這個 session 加入
expire-logs-days=7 (注意:你的 mysql 有可能是在 /etc/my.cnf.d/mysql-clients.cnf , 因為 /etc/my.cnf 會 include my.cnf.d 下的所有 configurations)
[mysqld]
expire-logs-days=7
設完 my.cnf 後記得重啟 service 讓 mysql daemond 吃 ini 的設值
# service mysql restart
如果你根本沒有在作 replication, 那麼我建議你是可以關掉 log-bin 的,註解掉它吧,一牢永逸,完全符合人類的惰性,只需一個小小的 # 字號
# Replication Master Server (default)
# binary logging is required for replication
#log-bin=mysql-bin
沒有留言:
張貼留言