简单整理MySQL的日志操作命令
1.首先确认你日志是否启用了
MySQL>showvariableslike'log_bin';
如果启用了,即ON那日志文件就在MySQL的安装目录的data目录下
2.怎样知道当前的日志
MySQL>showmasterstatus;
3.看二进制日志文件用MySQLbinlog
shell>MySQLbinlogmail-bin.000001
或者
shell>MySQLbinlogmail-bin.000001|tail
4.正确删除MySQLBIN-LOG日志实操
在mysql中会生大量的如mysq-bin.000001这类日志文件了,这些都是二进制文件了,如果我们是普通的日志没有进行主从配置就可以直接使用resetmaster进行删除了这个方法很简单,
如果没有主从复制,可以通过resetmaster的方式,重置数据库日志,清除之前的日志文件:
mysql>resetmaster;
还有一各就是在my.cnf里配置。
expire_logs_days=3
二进制日志自动删除的天数。这里设置了自动清除3天前的logs。
默认值为0,表示“没有自动删除”。
例
#按文件:删除mysql-bin.000354之前的日志,不包含mysql-bin.000354 MYSQL>purgebinarylogsto'mysql-bin.000354'; QueryOK,0rowsaffected(0.16sec) #按时间:删除2011-11-1000:00:00之前的日志 MYSQL>purgebinarylogsbefore'2011-11-1000:00:00'; #按时间:请理三天之前的日志 MYSQL>purgemasterlogsbeforedate_sub(now(),interval3day); 自动清理日志: #修改my.cnf文件配置bin-log过期时间 expire-logs-days=7 max-binlog-size=268435456
如果你是主从mysql日志文件请参考下面方法
//删除日志之前,先检查主从服务器当前使用的日志文件, //首先登录要删除日志的服务器的mysql终端 #mysql-uroot-pxxxxx //检查复制主服务器状态 Mysql>showmasterstatus +------------------+-----------+--------------+----------------------------------------+ |File|Position|Binlog_Do_DB|Binlog_Ignore_DB| +------------------+-----------+--------------+----------------------------------------+ |mysql-bin.000097|541677824|www|test,mysql,information_schema| +------------------+-----------+--------------+----------------------------------------+ //复制主服务器当前正在使用的日志文件是:mysql-bin.000097 //检查复制从服务器状态 Mysql>showslavestatusG //复制从服务器当前正在使用的复制主服务器日志文件是:mysql-bin.000103 //当前正在使用的日志文件是000097,我需要做的是删除00095号之前的所有日志(预留出最近几天的日志) Mysql>purgemasterlogsto‘mysql-bin.000095; #ll/usr/local/mysql/var/ //从结果中发现,编号000097之前的所有日志都已经删除