美文网首页mysqlMysqljs css html
MySql一主多从同步结构配置

MySql一主多从同步结构配置

作者: 技术老男孩 | 来源:发表于2023-02-21 07:50 被阅读0次

    一、环境准备:

    Ip地址 主机名 角色 数据管理员密码 公共配置
    192.168.88.50 Host50 Master服务器 123qqq…A 关闭防火墙
    禁用selinux
    192.168.88.51 Host51 Slave服务器 123qqq…A 关闭防火墙
    禁用selinux
    192.168.88.52 Host52 Slave服务器 123qqq…A 关闭防火墙
    禁用selinux

    二、配置流程:

    1、50主机配置Master
    2、51主机配置Slave
    3、备份50主机的sql到52主机上
    4、52主机配置Slave

    三、实操:

    第一步:50主机配置Master

    • 修改配置文件my.cnf
    [root@host50 ~]# vim /etc/my.cnf
    [mysqld]
    server_id=50  # 指定server_id
    log_bin=master50   # 定义日志名
    :wq
    
    • 重启服务生效配置
    [root@host50 ~]# systemctl  restart mysqld
    
    • 用户授权
    # 进入mysql服务
    [root@host50 ~]# mysql -uroot -p123qqq...A
    # 创建用户并授权
    mysql> grant replication slave on *.*  
        -> to repluser@"%" identified by "123qqq…A";
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    • 查看master信息,目的是查看File和Position的值
    mysql> show master status;
    +-----------------+----------+--------------+------------------+-------------------+
    | File            | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +-----------------+----------+--------------+------------------+-------------------+
    | master50.000001 |      154 |              |                  |                   |
    +-----------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    

    第二步:51主机配置Slave

    • 修改配置文件my.cnf
    [root@host51 ~]# vim /etc/my.cnf
    [mysqld]
    server_id=51  # 指定server_id
    :wq
    
    • 重启服务生效配置
    [root@host51 ~# systemctl  restart mysqld
    
    • 进入mysql服务,切记要保持主从数据库数据一致
    [root@host51 ~]# mysql -uroot -p123qqq...A
    
    • 指定主服务器信息
    mysql> change master to  
     -> master_host="192.168.88.50", # 主服务器Ip地址
     -> master_user="repluser" , # 主服务器添加用户名
     -> master_password="123qqq...A", # 用户密码
     -> master_log_file="master50.000001" , # 主服务器binlog日志名
     -> master_log_pos=154 ; # 偏移量
    
    • 启动slave进程
    mysql> start slave;
    
    • 查看状态信息(IO线程和 SQL线程必须同时是YES 状态)
    mysql> show slave status \G 
    

    第三步:备份50主机的sql到52主机上

    • 备份50主机的sql
    • --master-data完全备份完成时,把保存命令使用的日志名和偏移量保存到备份文件里
    [root@host50 ~]# mysqldump -uroot –p123qqq…A 
    --master-data -B db1 > /root/db1.sql
    [root@host50 ~]# scp /root/db1.sql 192.168.88.52:/opt/
    
    • 52主机使用备份文件恢复数据
    [root@host52 ~]# mysql -uroot -p123qqq...A  <  /opt/db1.sql                          
    # 进入sql环境
    [root@host52 ~]# mysql -uroot -p123qqq...A 
    # 查看导入是否完成
    Mysql> select count(*) from db1.t1;
    

    第四步:52主机配置Slave

    • 在备份文件里查看日志名和偏移量
    [root@host52 ~]# grep master50 /opt/db1.sql 
    CHANGE MASTER TO MASTER_LOG_FILE='master50.000001', 
    MASTER_LOG_POS=2000;
    
    • 管理员root登录
    [root@host54 ~]# mysql -uroot -p123qqq...A      
    # 指定主服务器信息 
    mysql> change master to  
     -> master_host="192.168.88.50", # 主服务器Ip地址
     -> master_user="repluser" , # 主服务器添加用户名
     -> master_password="123qqq...A", # 用户密码
     -> master_log_file="master50.000001" , # 主服务器binlog日志名
     -> master_log_pos=2000 ; # 偏移量
    
    • 启动slave进程
    mysql> start slave;
    
    • 查看状态 (IO线程和 SQL线程必须同时是YES 状态)
    mysql> show slave status \G     
    Slave_IO_Running: Yes                           
    Slave_SQL_Running: Yes
    
    • 测试一主多从的配置
    # 在主服务器50插入新数据
    mysql> insert into db1.t1 values(99988);
    # 两台从服务器可以看到一样的数据
     [root@host51 mysql]# mysql -uroot -p123qqq...A 
    Mysql> select * from db1.t1;
    [root@host52 mysql]# mysql -uroot -p123qqq...A
    Mysql> select * from db1.t1;
    

    相关文章

      网友评论

        本文标题:MySql一主多从同步结构配置

        本文链接:https://www.haomeiwen.com/subject/cdcihdtx.html