首页 > 数据库 > MySQL > 正文

mysql 删除日志文件命令详解

2024-07-24 12:37:13
字体:
来源:转载
供稿:网友

在mysql中会生大量的如mysq-bin.000001这类日志文件了,这些都是二进制文件了,如果我们是普通的日志没有进行主从配置就可以直接使用reset master进行删除了这个方法很简单,如果没有主从复制,可以通过reset master的方式,重置数据库日志,清除之前的日志文件,代码如下:

mysql> reset master;

还有一各就是在my.cnf里配置,代码如下:expire_logs_days = 3

二进制日志自动删除的天数,这里设置了自动清除3天前的logs,默认值为0,表示“没有自动删除”.

例,代码如下:

  1. # 按文件:删除mysql-bin.000354之前的日志,不包含mysql-bin.000354 
  2. MYSQL>purge binary logs to 'mysql-bin.000354'
  3. Query OK, 0 rows affected (0.16 sec) 
  4. # 按时间:删除2011-11-10 00:00:00 之前的日志 
  5. MYSQL>purge binary logs before '2011-11-10 00:00:00'
  6. # 按时间:请理三天之前的日志 
  7. MYSQL> purge master logs before date_sub(now(), interval 3 day); 

自动清理日志,代码如下:

  1. # 修改my.cnf文件配置bin-log过期时间 
  2. [mysqld] 
  3. expire-logs-days=7 
  4. max-binlog-size=268435456 

如果你是主从mysql日志文件请参考下面方法,代码如下:

  1. //删除日志之前,先检查主从服务器当前使用的日志文件, 
  2.  
  3. //首先登录 要删除日志的服务器的 mysql 终端 
  4. #mysql -u root -pxxxxx 
  5.  
  6. //检查复制主服务器状态 
  7. Mysql>show master status 
  8.  
  9. +------------------+-----------+--------------+----------------------------------------+ 
  10. | File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB                       | 
  11. +------------------+-----------+--------------+----------------------------------------+ 
  12. | mysql-bin.000097 | 541677824 | www      | test,mysql,information_schema | 
  13. +------------------+-----------+--------------+----------------------------------------+ 
  14.  
  15. //复制主服务器当前正在使用的日志文件是:mysql-bin.000097 
  16.  
  17. //检查复制从服务器状态 
  18. Mysql>show slave statusG 
  19.  
  20. //复制从服务器当前正在使用的复制主服务器日志文件是:mysql-bin.000103 
  21.  
  22.  
  23. //当前正在使用的日志文件是000097,我需要做的是删除00095号之前的所有日志(预留出最近几天的日志) 
  24. Mysql>purge master logs to ‘mysql-bin.000095; 
  25. //Vevb.com 
  26. #ll /usr/local/mysql/var/ 
  27.  
  28. //从结果中发现,编号000097之前的所有日志都已经删除

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表