清空MySQL下的binlog日志文件的方法

Binlog是mysql以二进制形式打印的日志,它默认不加密,不压缩。binlog二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改文件位置和格式:当用--log-bin[=file_name]选项启动时,mysqld写入包含所有更新数据的SQL命令的日志文件。如果未给出file_name值, 默认名为-bin后面所跟的主机名。如果给出了文件名,但没有包含路径,则文件被写入数据目录

数据库的操作日志

mysql-bin.000001
mysql-bin.000002
mysql-bin.000003

等等好多日志文件都10多G了我mysql总数据库加起来都不到1G

这些可以清理掉的。

输入mysql -u root -p然后输入密码

成功进去后输入reset master;

#mysql> reset master;
Query OK, 0 rows affected, 1 warning (0.20 sec)

就可以清空mysql日志了

如果不想mysql记录日志可以在my.cnf中关闭掉

找到my.cnf打开它 找到log-bin=mysql-bin然后注释掉就可以了

#log-bin=mysql-bin

 也可以添加配置使其自动清理,my.cnf配置中添加

expire_logs_days=30

这个的缺点是需要重启mysql才会清理

或者

set global expire_logs_days = 30;
flush logs

设置全局的binlog过期时间,不用重启刷新log使其生效

还有一种清理方式

show binary logs; 查看多少binlog日志,占用多少空间。
PURGE MASTER LOGS TO 'mysql-bin.002467'; 删除mysql-bin.002467以前所有binlog ,不包括自己;
PURGE MASTER LOGS BEFORE '2015-08-05 13:00:00'; #清除2018-08-05 13:00:00前binlog日志;


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/191.html