删除MySQL⼆进制⽇志的3种⽅法
1.RESET MASTER
可以删除列于索引⽂件中的所有⼆进制⽇志,把⼆进制⽇志索引⽂件重新设置为空,并创建⼀个新的⼆进制⽇志⽂件
2.PURGE MASTER LOGS
语法
PURGE {MASTER | BINARY} LOGS TO 'log_name'
河北考试教育院官网
PURGE {MASTER | BINARY} LOGS BEFORE 'date'
糖醋白菜⽤于删除列于在指定的⽇志或⽇期之前的⽇志索引中的所有⼆进制⽇志。这些⽇志也会从记录在⽇志索引⽂件中的清单中被删除,这样被给定的⽇志成为第⼀个。
例如:
PURGE MASTER LOGS TO 'mysql-bin.010';
鸭肠炒饭PURGE MASTER LOGS BEFORE '2003-04-02 22:46:26';
BEFORE变量的date⾃变量可以为'YYYY-MM-DD hh:mm:ss'格式。MASTER和BINARY是同义词。
如果您有⼀个活性的从属服务器,该服务器当前正在读取您正在试图删除的⽇志之⼀,则本语句不会起作⽤,⽽是会失败,并伴随⼀个错误。不过,如果从属服务器是休⽌的,并且您碰巧清理了其想要读取的⽇志之⼀,则从属服务器启动后不能复制。当从属服务器正在复制时,本语句可以安全运⾏。您不需要停⽌它们。
适应过程
要清理⽇志,需按照以下步骤:努力的名人故事
1.
在每个从属服务器上,使⽤SHOW SLAVE STATUS来检查它正在读取哪个⽇志。
基友是什么2.
使⽤SHOW MASTER LOGS获得主服务器上的⼀系列⽇志。
3.
慕容俊在所有的从属服务器中判定最早的⽇志。这个是⽬标⽇志。如果所有的从属服务器是更新的,这是清单上的最后⼀个⽇志。
4.
制作您将要删除的所有⽇志的备份。(这个步骤是⾃选的,但是建议采⽤。)
5.
清理所有的⽇志,但是不包括⽬标⽇志。
习惯了孤独3. expire_logs_days参数
⼆进制⽇志⾃动删除的天数。默认值为0,表⽰“没有⾃动删除”。启动时和⼆进制⽇志循环时可能删除
expire_logs_days numeric GLOBAL
在myf配置⽂件【mysqld】段中加⼊,重启MySQL服务,例:
expire_logs_days=3
删除3天以前的⽇志
注:当然需要考虑有slave情况下的影响