MySQL8.0輕鬆搞定GTID主主複製

KunlunDB發表於2022-01-21

前言


之前文章介紹了GTID主從複製,實現了一主多從的MySQL架構,今天我們來介紹一下主主複製的架構。


原理: 主主複製就是根據主從複製的原理,將兩個主庫設定互為主從即可。


變化 在這兩個主庫的基礎上,還可以搭建雙主多從架構。

MySQL8.0輕鬆搞定GTID主主複製


下面介紹在安裝好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部落格 ” ,連結:http://blog.itpub.net/70011764/viewspace-2853171/,如需轉載,請註明出處,否則將追究法律責任。

                                                        相關文章