从库:

    先停止当前从服务器(slave)上的复制线程(I/O 线程和 SQL 线程)。

    目的:在执行后续的复制配置更改前,确保从服务器不再接收或应用中继日志,避免状态混乱。

    MySQL命令:

    -- 1. 停止当前正在运行的复制进程

STOP SLAVE;

    -- 2. 完全清除当前从库的所有复制信息,

    --    这会让从库忘掉它和任何主库的连接关系。

RESET SLAVE ALL;

    

    -- 3. 彻底重置从库的二进制日志(binlog)和

    --    GTID信息,为接收新的数据流做好准备。

RESET MASTER;

主库

    新主库新建MySQL主从新任务,状况获取到从库的一些信息,主要获取到账号MASTER_USER 比如192.168.1.100_slave

从库:

   MySQL命令: 

RESET SLAVE;    
CHANGE MASTER TO        
  MASTER_HOST     = '192.168.1.1', #主库ip        
  MASTER_USER     = '192.168.1.100_slave', #该从库的账号        
  MASTER_PASSWORD = 'hu', #密码        
  MASTER_AUTO_POSITION = 1;        
START SLAVE;

    

主库:

    主库检测用户:

    MySQL命令:

SELECT user, host FROM mysql.user WHERE user = '192.168.1.100_slave'; #从库的账号

    

    获取到的格式大概如下1:

    +----------------------+----------------+

    | user                 | host           |

    +----------------------+----------------+

    | 192.168.1.100_slave | 192.168.1.100 |

    +----------------------+----------------+

    

    如下2:

    +----------------------+----------------+

    | user                 | host           |

    +----------------------+----------------+

    | 192.168.1.100_slave | %

    +----------------------+----------------+

    | 192.168.1.100_slave | 192.168.1.100 |

    +----------------------+----------------+

    

    用户已存在但密码不对或 host 不对:

    MySQL命令:

ALTER USER '192.168.1.100_slave'@'%' IDENTIFIED BY '密码';  #如下2
ALTER USER '192.168.1.100_slave'@'从库ip' IDENTIFIED BY '密码'; #如下1 如下2
FLUSH PRIVILEGES;

    

    如果要删除旧用户(非必须):

    MySQL命令:

DROP USER '192.168.1.100_slave'@'192.168.1.100';

    用户不存在,直接创建:

    MySQL命令:

CREATE USER '192.168.1.100_slave'@'192.168.1.100' IDENTIFIED BY '密码';
GRANT REPLICATION SLAVE ON *.* TO '192.168.1.100_slave'@'192.168.1.100';
FLUSH PRIVILEGES;

    

从库:

    看能不能登录:

    mysql -h 主库ip -u 从库账号 -p  #从库账号:192.168.1.100_slave

    输入主库设置的密码,完成登录

    

    查看状况

    MySQL命令:

SHOW SLAVE STATUS\G 

    错误跳过该 GTID:

STOP SLAVE;
SET GTID_NEXT = '19bec187-3fc7-11f1-b9f5-e0db55fe519c:4118';
BEGIN; COMMIT;
SET GTID_NEXT = 'AUTOMATIC';
START SLAVE;
SHOW SLAVE STATUS\G