1、任务实施内容
1.1 启动和设置二进制日志
1.2 查看二进制日志
1.3 删除二进制日志
1.4 暂停和恢复二进制日志
2、任务实施步骤
1.1启动和设置二进制日志
【例8-1】在my.ini配置文件中的[MySQLd]组下,添加以下几个参数与参数值:
log-bin
expire_logs_days=10
max_binlog_size=100M
添加完毕之后,关闭并重新启动MySQL服务进程,即可打开二进制日志,然后可以通过SHOW VARIABLES语句来查询日志设置。
【例8-2】使用SHOW VARIABLES语句查询二进制日志设置。
mysql> show variables like 'log_%';
运行结果如图8-1所示。

图8-1 查询二进制日志设置
通过上面的查询结果可以看出,log_bin变量的值为ON,表明二进制日志已经打开。MySQL重新启动之后,读者可以在自己机器上的MySQL数据文件夹下面看到新生成的后缀为000001和.index的两个文件,文件名称为默认主机名称。例如,在作者的机器上的文件名称为hchlcomputer-bin.000001和hchlcomputer-bin.index。
如果想改变日志文件的目录和名称,可以对my.ini中的log-bin参数修改如下:
[mysqld]
log-bin=”D:/mysql/log/binlog”
关闭并重新启动MySQL服务之后,新的二进制日志文件将出现在D:/mysql/log文件夹下面,名称为binlog.00001和binlog.index。读者可以根据情况灵活设置。
注意:数据库文件最好不要与日志文件放在同一个磁盘上,这样,当数据库文件所在的磁盘发生故障时,可以使用日志文件恢复数据。
1.2查看二进制日志
【例8-3】使用SHOW BINARY LOGS查看二进制日志文件个数及文件名。
mysql> show binary logs;
运行结果如图8-2所示。

图8-2 查看二进制日志文件
可以看到,当前只有一个二进制日志文件。日志文件的个数与MySQL服务启动的次数相同。每启动一次MySQL服务,将会产生一个新的日志文件。
【例8-4】使用MySQLbinlog查看二进制日志。
C:\Program Files\MySQL\MySQL Server8.0\bin>mysqlbinlog D:\mysql\log\binlog.000012
运行结果如图8-3所示。

图8-3 查看二进制日志
这是一个简单的日志文件,日志中记录了-些用户的操作。从二进制日志文件内容中可以看到,用户对customers表进行了更新操作语句为”UPDATE customers set c_sex= ‘男’ WHERE c_name='张骁';”。
1.3 删除二进制日志
【例8-5】假如已经产生了10个日志文件,使用PURGE MASTER LOGS删除创建时间比binlog.000003早的所有日志文件。
mysql> purge master logs to"binlog.000003";
执行完成后,使用SHOW binary logs语句查看二进制日志。
mysql> show binary logs;
运行结果如图8-4所示。

图8-4 删除日志文件
可以看到binlog.000001和binlog.000002两个日志文件被删除了。
【例8-6】使用PURGE MASTER LOGS删除2019年12月27日前创建的所有日志文件。
Mysql>PURGE MASTER LOGS BEFORE ‘20191227’;
语句执行之后,2019年12月27日之前创建的日志文件都将被删除,但2019年12月27日的日志会被保留(读者可根据自己机器中创建日志的时间修改命令参数)。使用MySQLbinlog可以查看指定日志的创建时间,部分日志内容如下图8-5所示。

图8-5 日志的创建时间
其中191227为日志创建的时间,即2019年12月27日。
1.4暂停和恢复二进制日志
【例8-7】暂停记录二进制日志。
Mysql>Set sql_log_bin=0;
【例8-8】恢复记录二进制日志。
Mysql>Set sql_log_bin=1;
执行恢复的语句如下:
C:\Program Files\MySQL\MySQL Server8.0\bin>Mysqlbinlog --stop-datetime="2020-01-02 10:40:30" D:/mysql/log/binlog.000021 | mysql -uroot –pnetbuy