Windows环境mysql主从架构半同步配置

前提条件

安装两个mysql,端口分别是3306、3307且能正常运行,别轻易复制安装文件

一、安装半同步复制插件

  1. 定位插件文件
    • 在MySQL的安装目录下找到lib文件夹,然后找到plugin子文件夹。确保semisync_master.dllsemisync_slave.dll这两个文件存在于该文件夹中(对于Windows系统而言)。
  2. 在主库上安装插件
    • 使用cmd 命令或者navicate连接到主库。
    • 执行以下SQL命令来安装半同步复制主库插件:
    • C:\web\mysql-8.0.22-winx64>cd bin
      
      C:\web\mysql-8.0.22-winx64\bin>mysql -h localhost -uroot -p
      Enter password: ********
      
      mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.dll';
      
  3. 在从库上安装插件
    • 同样地,使用MySQL客户端工具连接到从库。
    • 执行以下SQL命令来安装半同步复制从库插件:
    • INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.dll';

  4. 验证插件安装
    • 在主库和从库上,执行以下SQL命令来验证插件是否已正确安装:
    • SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%semi%';

二、配置主从库

  1. 配置主库
    • 编辑主库的my.ini配置文件(通常位于MySQL安装目录下)。
    • [mysqld]部分添加以下配置:
    • ini
      
      #==========主从配置master====================
      #binlog 文件名
      log-bin=mysql-bin
      binlog_format=ROW
      server_id=1
      #设置需要同步的数据库名
      binlog-do-db=course_db
      #屏蔽数据库同步
      binlog-ignore-db=mysql
      binlog-ignore-db=performance_schema
      binlog-ignore-db=information_schema
      
      #半同步配置
      #启用半同步复制
      rpl_semi_sync_master_enabled=1 
      #设置超时时间,单位为毫秒
      rpl_semi_sync_master_timeout=1000
  1. 配置从库
    • 编辑主库的my.ini配置文件(通常位于MySQL安装目录下)。
    • [mysqld]部分添加以下配置:
    • ini
      
      #==========主从配置slave====================
      #binlog 文件名
      log-bin=mysql-bin
      binlog_format=ROW
      server_id=2
      #设置需要同步的数据库
      replicate_wild_do_table=course_db.%
      #设置忽略同步的数据库
      replicate_wild_ignore_table=mysql.%
      replicate_wild_ignore_table=performance_schema.%
      replicate_wild_ignore_table=information_schema.%
      
      #半同步配置
      rpl_semi_sync_slave_enabled=1
  1. 重启MySQL服务
    • 在Windows服务管理器中重启MySQL服务,以使配置生效。

三、启动和验证半同步复制

  1. 在主库上创建复制用户
    • 使用以下SQL命令在主库上创建一个用于复制的用户,并授予必要的权限:
    • CREATE USER 'replica_db'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'replica_db';
      GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replica_db'@'%';
      FLUSH PRIVILEGES;
    • 验证用户的plugin必须为"mysql_native_password"
    • select user,host,plugin,authentication_string from mysql.user 
  2. 在主库上查询锚点:

    • show  master status;
       
    • 记录下file 和Position的值
  3. 在从库上配置复制源

    • 使用以下SQL命令在从库上配置复制源,指向主库:

    • STOP SLAVE;
      
      RESET SLAVE ALL;
      
      CHANGE MASTER TO
        MASTER_HOST='主库IP地址',
        MASTER_USER='replica_db',
        MASTER_PASSWORD='replica_db',
        MASTER_LOG_FILE='mysql-bin.000001',  # 替换为当前主库的二进制日志文件名file
        MASTER_LOG_POS=  4;  # 替换为当前主库的二进制日志位置Position(从SHOW MASTER STATUS获取)
  4.  启动从库的复制线程

    • 在从库上执行以下SQL命令来启动复制线程:

    • START SLAVE;
  5. 验证复制状态

    • 在从库上执行以下SQL命令来验证复制状态:

    • SHOW SLAVE STATUS
    • 检查Slave_IO_RunningSlave_SQL_Running的值是否为Yes,以及Rpl_semi_sync_slave_status的值是否为ON,以确认半同步复制是否已成功启动

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值