临时生效:进入mysql,用以下命令设置全局的参数: set global expire_logs_days=30
(上面的数字30是保留30天的意思。)
可以直接删除 binlog 文件,但是可以通过 mysql 提供的工具来删除更安全,因为 purge 会更新 mysql-bin.index 中的条目,而直接删除的话, mysql-bin.index 文件不会更新。 mysql-bin.index 的作用是加快查找 binlog 文件的速度。
命令查看 binlog 文件
删除举例:
lsof|grepdeleted查看一下是否存在删除了,但是没有释放空间的文件。查看其所属的服务的进程号,杀掉进程,重启服务。1、绝对不能从 *** 作系统上直接删除binlog日志,如rm binlog。
2、在MySQL中,使用PURGE BINARY LOGS命令删除binlog日志,才是最安全的办法。命令如下,
PURGE BINARY LOGS BEFORE '2017-01-20 00:00:00'
PURGEBINARYLOGSBEFORE'2017-01-20 00:00:00'
首先,建议你在删除之前先对数据库用mysqldump做个全库备份。然后进入Mysql(用root用户)。然后 show binary logs ,这个命令会列出当前保存的所有二进制日志。然后用命令:purge binary/master logs to 日志名(表示到这个日志之前的日志都删除掉)/before 时间(表示到这个时间之前的日志都删除掉)
里面用“/”标明的是前后两个二选一的可选项。执行完后,就会删除了。
如果你不想这么麻烦,可以设置日志保存时长的。首先你要找到my.cnf配置文件,然后编辑它。在[mysqld]里面加入
expire_logs_days=想要保留的天数
然后重启Mysql服务。这样每当你重启mysql服务,或者是做flush logs的时候,系统都会把超出设置天数之外的日志删掉。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)