• MySQL 8.0主从(MasterSlave)配置 双主 互为主从 实现


    参考:https://blog.csdn.net/zyhlwzy/article/details/80569422

    参考:https://blog.csdn.net/tanfengshang0872/article/details/121446436

    自己实际操作踩坑:

    1.添加用户那里指定IP 可以不指定 使用 ‘%’ 代替 表示允许所有主机连接

    2. 更改 query_cache_type 配置项导致重启mysql失败 具体原因未研究

    3.注意指定主服务器sql语句的准确性

    CHANGE MASTER TO MASTER_HOST='192.168.51.115',
    MASTER_USER='master',
    MASTER_PASSWORD='Root_2019',
    MASTER_LOG_FILE='mysql-bin.000008',
    MASTER_LOG_POS=156;
    CHANGE MASTER TO MASTER_HOST='192.168.51.115', # 主mysql服务器ip
    MASTER_USER='master', # 主mysql创建用于主从同步的用户
    MASTER_LOG_FILE='mysql-bin.000008', # 主mysql 使用 show master status; 语句查看
    MASTER_LOG_POS=156; # 主mysql 使用 show master status; 语句查看

    设置双主互为主从:
    CREATE USER 'slave'@'%' IDENTIFIED BY 'XM_zm2019';
    
    # mysql8.0 不能加identified by
    grant replication slave,replication client on *.* to slave@'%';
    
    FLUSH PRIVILEGES;
    
    show master status\G;
    
    # 指定主节点同步
    change master to master_host='192.168.51.116',master_user='slave',master_password='XM_zm2019',master_port=3306,MASTER_LOG_FILE='binlog.000012', MASTER_LOG_POS=156;
    
    start slave;
    
    # 启动slave 报错时
    reset slave;
    
    #  show slave status\G; 查看状态 报错'Could not find first log file name in binary log index file' 刷新主库二进制文件,命令:flush logs; 
    
    #  show slave status\G; 查看状态 第一行为 Slave_IO_State: Waiting for master to send event 代表从节点配置成功
    
    # 互为主节点my.cnf配置
    # 服务器1
    #设置主从相关配置====start
    log-bin=mysql-bin
    server_id=1111
    
    # 需要同步的数据库名称
    binlog-do-db=shop_ds_master
    binlog-do-db=shop_ds_master1
    # 不需要同步的数据库
    binlog-ignore-db=information_schema
    binlog-ignore-db=performation_schema
    binlog-ignore-db=sys
    # 每次执行写入就与磁盘同步
    sync-binlog=1
    
    
    relay-log=mysql-relay-bin         #开启中继日志
    log_slave_updates = on            #从服务器将时间记录到二进制日志中
    auto_increment_increment=2        #自动增长的步长
    auto_increment_offset=1           #自动增长的起始数值
    #设置主从相关配置====end
    
    # 服务器2
    #设置主从相关配置====start
    log-bin=mysql-bin
    server_id=2222
    # 需要同步的数据库名称
    binlog-do-db=shop_ds_master
    binlog-do-db=shop_ds_master1
    
    auto_increment_increment=2
    auto_increment_offset=2
    #设置主从相关配置====end
     
    踩坑:
    主从运行一段时间出错,然后主从失效解决方案:
    1、临时方案
    # 停止从服务
    stop slave;
    
    # 跳过报错行数据同步
    set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
    
    # 开始从服务
    start slave;
    
    # 查看从服务状态 查看 Last_SQL_Errno 
    show slave status\G;

    2.如果是由索引重复报错 并且不影响业务 可以选择配置忽略此项错误

    slave_skip_errors = 1062

    3.解除数据库主从复制关系

    reset slave all;

    备注:my.cnf中的写法:

    slave_skip_errors=1062,1053  

    slave_skip_errors=all  

    slave_skip_errors=ddl_exist_errors  

    关闭开启记录binlog

    # 关闭
    SET SQL_LOG_BIN=0;
    # 开启
    SET SQL_LOG_BIN=1;

    配置文件中

    log-bin=mysql-bin

    指定了binlog文件的名称  mysql-bin.000001

     
     
  • 相关阅读:
    cvCreateStructuringElementEx理解
    GNU_GSL相关
    粒子滤波(转)
    C++指针拷贝
    c++中的复制构造函数
    通过几道题目找自信
    C++网络编程基础
    linux system : install flash player
    ContentType一览
    O_RDWR O_CREAT等open函数标志位在哪里定义?(格式还要编译,答案在最后一段)
  • 原文地址:https://www.cnblogs.com/guanxiaohe/p/15922222.html
Copyright © 2020-2023  润新知