RESET MASTER和RESET SLAVE使用场景和说明

Posted 星辰大海ゞ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RESET MASTER和RESET SLAVE使用场景和说明相关的知识,希望对你有一定的参考价值。

【一】RESET MASTER参数

功能说明:删除所有的binglog日志文件,并将日志索引文件清空,重新开始所有新的日志文件。用于第一次进行搭建主从库时,进行主库binlog初始化工作;

 

测试如下:

未删除前

[[email protected] mysql]# pwd
/data/mysql


[[email protected] mysql]# ls
技术分享


mysql> show master status\G;
*************************** 1. row ***************************
            File: mysql-bin.000025
        Position: 107
    Binlog_Do_DB: 
Binlog_Ignore_DB: 
1 row in set (0.01 sec)


当前有25个binlong日志,且Position的位置为107

 

运行RESET MASTER

mysql> reset master;
Query OK, 0 rows affected (0.03 sec)


mysql> show master status\G;
*************************** 1. row ***************************
            File: mysql-bin.000001
        Position: 107
    Binlog_Do_DB: 
Binlog_Ignore_DB: 
1 row in set (0.00 sec)

 

技术分享

 

显示所有的binlog已经被删除掉,且binlog从000001 开始记录

 

注:当数据库要清理binlog文件的时候,可以通过操作系统进行删除,也可以运行reset master进行删除。但是如果当前是主数据库,且主从数据库正常的时候,千万不能用这种方式删除。

【使用场景】第一次搭建主从数据库时,用于主库的初始化binglog操作;


【二】RESET SLAVE

功能说明:用于删除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件;

登录从数据库,未删除前

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Connecting to master
                  Master_Host: 192.168.47.167
                  Master_User: server
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000019
          Read_Master_Log_Pos: 12992
              Relay_Log_File: mysql02-relay-bin.000004
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysql-bin.000019
 

技术分享

当前relaylog为0004;

 

删除后

mysql> stop slave;                先停止slave
Query OK, 0 rows affected (0.01 sec)

mysql> reset slave;                
Query OK, 0 rows affected (0.04 sec)

 

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: 
                  Master_Host: 192.168.47.167
                  Master_User: server
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: 
          Read_Master_Log_Pos: 4
               Relay_Log_File: mysql02-relay-bin.000001
                Relay_Log_Pos: 4

 

技术分享

RESET SLAVE将使SLAVE忘记主从复制关系的位置信息。该语句将被用于干净的启动, 它删除master.info文件和relay-log.info 文件以及所有的relay log 文件并重新启用一个新的relaylog文件。

使用场景:当原来的主从关系被破坏之后,从库经过重新初始化后直接连接会报 ERROR 1201的错误,运行reset slave后,重新配置主从连接就可以了;

mysql> CHANGE MASTER TO MASTER_HOST=‘192.168.0.167‘,MASTER_USER=‘test‘,MASTER_PASSWORD=‘test‘, MASTER_LOG_FILE=‘mysql-bin.000001‘,MASTER_LOG_POS=176658;

 

 

ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log

 

 

总结:如果是需要删除mysql binlog和relaylog文件的时候,那么通过操作系统的删除或者PURGE命令都可以,但是涉及到mysql主从配置的时候便需要使用RESET MASTER和RESET SLAVE解决问题

 

以上是关于RESET MASTER和RESET SLAVE使用场景和说明的主要内容,如果未能解决你的问题,请参考以下文章

关于MySQL的reset master和reset slave

MySQL中RESET SLAVE和RESET MASTER的区别

mysql主从复制重置操作--reset master, reset slave

reset slave all更彻底

mysql 5.7.34 gtid 复制模式下执行 reset master 命令后 slave 节点的处理

怎么reset mysql master