服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - 简单整理MySQL的日志操作命令

简单整理MySQL的日志操作命令

2020-05-28 15:39MYSQL教程网 Mysql

这篇文章主要介绍了MySQL的日志操作命令,其中重点讲述了MySQL的日志删除方法,需要的朋友可以参考下

1.首先确认你日志是否启用了

?
1
MySQL>show variables like 'log_bin';

如果启用了,即ON那日志文件就在MySQL的安装目录的data目录下

2.怎样知道当前的日志

?
1
MySQL> show master status;

3.看二进制日志文件用MySQLbinlog

?
1
shell>MySQLbinlog mail-bin.000001

或者

?
1
shell>MySQLbinlog mail-bin.000001 | tail

4.正确删除MySQL BIN-LOG 日志实操

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

?
1
mysql> reset master;


还有一各就是在my.cnf里配置。

?
1
expire_logs_days = 3

 

二进制日志自动删除的天数。这里设置了自动清除3天前的logs。

默认值为0,表示“没有自动删除”。


?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 按文件:删除mysql-bin.000354之前的日志,不包含mysql-bin.000354
 
MYSQL>purge binary logs to 'mysql-bin.000354';
 
Query OK, 0 rows affected (0.16 sec)
 
# 按时间:删除2011-11-10 00:00:00 之前的日志
 
MYSQL>purge binary logs before '2011-11-10 00:00:00';
 
# 按时间:请理三天之前的日志
 
MYSQL> purge master logs before date_sub(now(), interval 3 day);
 
自动清理日志 :
 
# 修改my.cnf文件配置bin-log过期时间
 
 
expire-logs-days=7
 
max-binlog-size=268435456


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

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

 

延伸 · 阅读

精彩推荐