1. 查看bin-log是否开启
show variables like 'log_%';
2. 查看所有binlog日志列表
show master logs;
3.查看master状态
show master status;
4. 重置(清空)所有binlog日志
reset master;
1、使用mysqlbinlog自带查看命令法
mysqlbinlog binlog.000020
2 若要看到具体的sql需要加 -v
mysqlbinlog binlog.000020 -v
show binlog events in 'binlog.000020';
3. 查看当前拥有的binlog
show binary logs;
4. 删除binlog
purge binary logs before 'xxx'
show relaylog events in 'docker-relay-bin-group_replication_applier.000033';
1. reset master
1.1 删除所有binlog,并重头开始生成一个新的binlog
1.2 清空binlog索引文件
1.3 在gtid,会同时清理变量gtid_executed,gtid_purged,mysql.gtid_executed的内容
2. reset slave
2.1 删除所有relay log,并从头开始生成一个新的relay log
2.2 清空relay log索引文件
2.3 清空mysql.slave_relay_log_info,mysql.slave_worker_info表的内容
2.4 清空mysql.slave_master_info表空的binlog位置信息,但会保留链接信息
PS:在gtid中,因为有gtid_executed,所以复制可以继续,不会中断,但如果是基于位置点的复制,则i/o线程需要从现有的binlog日志重新拉取数据,则 主从中断
3. reset slave all
3.1 会直接情况mysql.slave_slave_info 中的所有内容,包括链接信息,这时要恢复主从的话,只能通过change master to 命令
3.2 执行时必须执行 stop salve;
3.3 不会清除与gtid相关的任何信息
1. 传统复制
stop slave;
set global sql_slave_skip_counter=1;
start slave;
2. gtid复制
gtid中跳过事务的本质是注入空事务
show slave status\G;
set session gtid_next='xxx:xxx';
begin;
commit;
set session gtid_next='automatic';
start slave;