目錄
一、問題的引出
mysql binlog 如果不清理會占用伺服器的空間,那麼怎麼處理binlog日誌呢
二、解決辦法
1、物理刪除
➜ bob@bob-pc ~ df -th
檔案系統 型別 容量 已用 可用 已用% 掛載點
udev devtmpfs 7.8g 0 7.8g 0% /dev
tmpfs tmpfs 1.6g 2.4m 1.6g 1% /run
/dev/sda1 ext4 110g 101g 3.6g 97% /
tmpfs tmpfs 7.8g 399m 7.4g 6% /dev/shm
tmpfs tmpfs 5.0m 4.0k 5.0m 1% /run/lock
tmpfs tmpfs 7.8g 0 7.8g 0% /sys/fs/cgroup
/dev/sdb1 ext4 458g 35g 400g 8% /data/mnt
tmpfs tmpfs 1.6g 68k 1.6g 1% /run/user/1000
➜ bob@bob-pc /data/mnt/mysql_data sudo cat bin.index
./bin.000112
./bin.000113
./bin.000114
./bin.000115
./bin.000116
2、邏輯刪除(root@localhost:mysql3306.sock)[(none)]> show binary logs;
+------------+-----------+
| log_name | file_size |
+------------+-----------+
| bin.000112 | 0 |
| bin.000113 | 0 |
| bin.000114 | 217 |
| bin.000115 | 194 |
| bin.000116 | 194 |
+------------+-----------+
5 rows in set (0.00 sec)
(root@localhost:mysql3306.sock)[(none)]> show variables like '%expire_logs_days%';
+------------------+-------+
| variable_name | value |
+------------------+-------+
| expire_logs_days | 7 |
+------------------+-------+
1 row in set (0.00 sec)
(root@localhost:mysql3306.sock)[(none)]> set global expire_logs_days = 4;
query ok, 0 rows affected (0.00 sec)
這裡修改/etc/my.cnf 重啟mysql
3、手動清除binlog檔案
登入機器 執行 刪除3天前的mysql binlog日誌
(root@localhost:mysql3306.sock)[(none)]> purge master logs before date_sub(current_date, interval 3 day);
query ok, 0 rows affected (0.01 sec)
(root@localhost:mysql3306.sock)[(none)]> show master logs ;
+------------+-----------+
| log_name | file_size |
+------------+-----------+
| bin.000112 | 0 |
| bin.000113 | 0 |
| bin.000114 | 217 |
| bin.000115 | 194 |
| bin.000116 | 194 |
+------------+-----------+
刪除mysql-bin.000114 之前的binlog 這裡是個開區間(-無窮,bin.000114)
(root@localhost:mysql3306.sock)[(none)]> purge master logs to 'bin.000114';
query ok, 0 rows affected, 2 warnings (0.11 sec)
清除了執行,一下命令顯示已經刪除了
(root@localhost:mysql3306.sock)[(none)]> show master logs;
+------------+-----------+
| log_name | file_size |
+------------+-----------+
| bin.000114 | 217 |
| bin.000115 | 194 |
| bin.000116 | 194 |
+------------+-----------+
3 rows in set (0.00 sec)
參考 MySQL開啟binlog日誌
mysql開啟binlog日誌很簡單,只需要找到配置檔案,在配置檔案中的 mysqld 配置段新增下面一句話就可以了 log bin mysql bin 這樣就開啟了mysql的binlog日誌。使用下面的sql語句在mysql的客戶端可以檢視binlog日誌是否開啟 show master log...
mysql 匯出binlog日誌
首先你得開啟了mysql的bin log.找到你的mysqlbinlog。執行 find name mysqlbinlog 檢視mysql server上的二進位制日誌 mysql showbinarylogs 將binlog檔案匯出為sql檔案 usr local src mysql 5.7.10...
Mysql開啟binlog日誌
binlog介紹 binlog是二進位制檔案 binlog記錄了資料庫的所有dml操作 通過binlog日誌可以進行資料恢復操作 binlog配置 mysql資料庫檢視binlog日誌是否開啟 show variables like log bin mysql show variables like...