ITPub博客

首页 > 数据库 > MySQL > MySQL8.0轻松搞定GTID主主复制

MySQL8.0轻松搞定GTID主主复制

原创 MySQL 作者:KunlunDB 时间:2022-01-21 10:49:21 0 删除 编辑

前言


之前文章介绍了GTID主从复制,实现了一主多从的MySQL架构,今天我们来介绍一下主主复制的架构。


原理: 主主复制就是根据主从复制的原理,将两个主库设置互为主从即可。


变化 : 在这两个主库的基础上,还可以搭建双主多从架构。


下面介绍在安装好MySQL8的centos8虚拟机上,实现GTID主主复制,以及双主多从复制的过程:

 

虚拟机列表:

    Master1:   192.168.25.149Master2:   192.168.25.150Slave1:    192.168.25.152Slave2:    192.168.25.153


    一、Master1配置


    1.1  删除 auto.cnf ,重启自动生成server-uuid

      rm -f /var/lib/mysql/auto.cnf    # 复制的虚拟机镜像,UUID会重复


      1.2  设置server-id,打开GTIT

        vim /etc/my.cnf# 添加[mysqld]server-id=1gtid_mode=>


        1.3  重启MySQL

          systemctl restart mysqld.service


          1.4  登录mysql,添加用于同步的数据库账号

            mysql> create user 'kunlun'@'%' identified by '123456';mysql> grant replication slave on *.*  to 'kunlun'@'%';mysql> flush privileges;


            二、Master2配置


            2.1  删除auto.cnf,重启自动生成server-uuid

              rm -f /var/lib/mysql/auto.cnf   # 复制的虚拟机镜像,UUID会重复


              2.2  设置server-id,打开GTID

                vim /etc/my.cnf# 添加[mysqld]server-id=2gtid_mode=>


                2.3  重启MySQL

                  systemctl restart mysqld.service


                  2.4  登录mysql,添加用于同步的数据库账号

                    mysql> create user 'kunlun'@'%' identified by '123456';mysql> grant replication slave on *.*  to 'kunlun'@'%';mysql> flush privileges;


                    三、Master1启动主从复制


                    3.1  登录MySQL,配置主从同步

                      mysql> change master to master_host='192.168.25.150',    # Master2的IPmaster_port=3306,          #默认端口master_user='kunlun',        # Master2创建的账户master_password='123456',      #密码master_auto_position = 1;


                      3.2  启动从库服务

                        mysql> start slave;


                        3.3  查看状态

                          mysql> show slave status\G*************************** 1. row ***************************               Slave_IO_State: Waiting for source to send event             Slave_IO_Running: Yes            Slave_SQL_Running: Yes


                          四、Master2启动主从复制


                          4.1  登录MySQL,配置主从同步

                            mysql> change master to master_host='192.168.25.149',    # Master1的IPmaster_port=3306,          #默认端口master_user='kunlun',        # Master1创建的账户master_password='123456',      #密码  master_auto_position = 1;


                            4.2  启动从库服务

                              mysql> start slave;


                              4.3  查看状态

                                mysql> show slave status\G*************************** 1. row ***************************               Slave_IO_State: Waiting for source to send event             Slave_IO_Running: Yes            Slave_SQL_Running: Yes

                                 

                                至此,互为主从复制的GTID主主复制已经搭建成功,下面再为两个Master各搭建一个从库。

                                 

                                五、Slave1配置,并启动主从复制


                                5.1  删除auto.cnf,重启自动生成server-uuid

                                  rm -f /var/lib/mysql/auto.cnf     # 复制的虚拟机镜像,UUID会重复


                                  5.2  设置server-id

                                    vim /etc/my.cnf# 添加[mysqld]server-id=3gtid_mode=>


                                    5.3  重启MySQL

                                      systemctl restart mysqld.service


                                      5.4  登录mysql,配置主从同步

                                        
                                        mysql> 
                                        change master 
                                        to 
                                        
                                        
                                        master_host=
                                        '192.168.25.149',    
                                        
                                        # Master1的IP
                                        
                                        master_port=3306,          
                                        
                                        # 默认端口
                                        
                                        
                                        master_user=
                                        'kunlun',        
                                        
                                        # Master1创建的账户
                                        
                                        
                                        master_password=
                                        '123456',      
                                        
                                        # 密码
                                        
                                        
                                        master_auto_position = 
                                        1
                                        ;
                                        
                                        
                                        


                                        5.5  启动从库服务

                                          mysql>start slave;


                                          5.6  查看状态

                                            mysql> show slave status\G*************************** 1. row ***************************               Slave_IO_State: Waiting for source to send event             Slave_IO_Running: Yes            Slave_SQL_Running: Yes

                                             

                                            六、Slave2配置,并启动主从复制


                                            6.1  删除auto.cnf,重启自动生成server-uuid

                                              rm -f /var/lib/mysql/auto.cnf     # 复制的虚拟机镜像,UUID会重复


                                              6.2  设置server-id

                                                vim /etc/my.cnf# 添加[mysqld]server-id=4gtid_mode=>


                                                6.3  重启MySQL

                                                  systemctl restart mysqld.service

                                                   

                                                  6.4  登录mysql,配置主从同步

                                                    mysql> change master to master_host='192.168.25.150',    # Master2的IPmaster_port=3306,          #默认端口master_user='kunlun',        # Master2创建的账户master_password='123456',      #密码master_auto_position = 1;

                                                     

                                                    6.5  启动从库服务

                                                      mysql>start slave;


                                                      6.6  查看状态

                                                        mysql> show slave status\G*************************** 1. row ***************************               Slave_IO_State: Waiting for source to send event             Slave_IO_Running: Yes            Slave_SQL_Running: Yes


                                                        至此,基于GTID的双主多从复制已经搭建成功


                                                        END


                                                        来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70011764/viewspace-2853171/ ,如需转载,请注明出处,否则将追究法律责任。

                                                        请登录后发表评论 登录
                                                        全部评论

                                                        注册时间:2021-12-27

                                                        • 博文量
                                                          103
                                                        • 访问量
                                                          31395