在启用MySQL的主从复制之后,发现在Master上的MySQL磁盘占用迅速上升导致磁盘报警(主要是mysql-bin.000xyz文件,也就是俗称的binlog文件): $ sudodu -sh /var/lib/mysql/* | sort -hr 3.3G /var/lib/mysql/ibdata1 1.1G /var/lib/mysql/mysql-bin.000001 1.1G /var/lib/mysql/mysql-bin.000002 ... 参考解答:可能的原因:原因一: 启用了MySQL的binlog记录(在配置文件中设置了 log-bin=mysql-bin ) 原因二: 将binlog_format设置为了mixed或row(默认的格式为statement): binlog_format = mixed 或 binlog_format = row 解决办法:0.在不需要binlog的情况下,可以通过注释「log-bin=mysql-bin」这一行来关闭该功能; 1.修改 binlog_format = statement (占用空间相对 row 和 mixed 来说会比较小),但是对于某些SQL来说可能就不支持,需要改SQL; 2. 临时删除部分binlog mysql> PURGEBINARYLOGSTO 'mysql-bin.000039'; 或 mysql> PURGEBINARYLOGSBEFORE '2016-09-20 22:46:26'; 3.在配置文件my.cnf中 设置 binlog 定期删除 选项(修改后需要重启MySQL) expire_logs_days = 2 4. 修改MySQL的数据目录 将MySQL的数据目录修改至一个有更大空间的磁盘上,并设置 expire_logs_days 选项,避免磁盘报警。 (责任编辑:最模板) |