mysql自动定期清理日志文件

mysql自动定期清理日志文件,第1张

方法一: 修改配置文件

重启mysql生效

方法二:修改mysql变量

该方法在下次启动mysql后失效,也就是说重启mysql后expire_logs_days的值又还原为0了,

该方法的好处在于不用重启mysql就可以生效

所有mysql-bin都用rm删除了,可以找回数据。binlog日志用于记录所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改。  简单来说,可以通过binlog回溯数据的变化过程,可用于找回数据。

正确方法,通过mysql命令删除:

关键命令为:reset master此命令会清空mysql-bin数据库日志文件。

如果mysql服务器不需要做主从复制,建议通过修改my.cnf文件,来设置不生成这些文件,只要删除my.cnf添加:log-bin=mysql-bin如果需要复制,最好控制下这些日志文件保留的天数,设定日志文件保留的天数:expire_logs_days = 7表示保留7天的日志,旧日志会自动被清理掉。

用命令查看: show binary logs

然后去从服务器上查看哪个二进制正在使用,

我们看到mysql-tb-bin.000005这个日志文件正在使用。

回到主服务器开始清理日志,但是不能清理mysql-tb-bin.000005这个日志文件,用命令清理:

purge binary logs to 'mysql-tb-bin.000005'

这个命令就是清理除mysql-tb-bin.000005以外的其他二进制日志;执行成功后,再查看二进制日志列表:show binary logs

清理成功,但是这样手动清理危险很大,而且还比较复杂,有没有自动清理的方法呢?答案是有的,在my.ini里面加上这个配置:expire_logs_days=5 这个配置的意思就是,日志的过期天数,超过5天的日志,mysql会自动清理5天以前的日志


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7344433.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存