<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      MYSQL雙主全庫同步復制的示例詳細說明

      [摘要]環境:A、B兩臺服務器分別安裝mysql-5.7.18服務端,配置成互為主從同步。linux系統版本為CentOS7A服務器ip:192.168.1.7 主機名:test1B服務器ip:192....
      環境:

      A、B兩臺服務器分別安裝mysql-5.7.18服務端,配置成互為主從同步。

      linux系統版本為CentOS7

      A服務器ip:192.168.1.7 主機名:test1

      B服務器ip:192.168.1.8 主機名:test2

      (同一局域網下)

      一、準備

        1.修改主機名

         命令:hostnamectl set-hostname xxx

         (查看主機名 命令:hostname)

        2.關閉防火墻

         1)查看防火墻狀態

          命令:firewall-cmd --state

          結果:running

         2)防火墻是運行狀態,先關閉防火墻服務

          命令:systemctl mask firewalld

         3)關閉防火墻

          命令:systemctl stop firewalld

         4)檢查防火墻狀態

          命令:firewall-cmd --state

          結果:not running

        3.關閉selinux策略

         1)查看selinux運行狀態

          命令:getenforce

          結果:Enforcing

          MYSQL雙主全庫同步復制的示例詳解

         2)永久性關閉(需重啟電腦),編輯selinux文件vi /etc/sysconfig/selinux修改SELINUX=disabled

          MYSQL雙主全庫同步復制的示例詳解

         3)為關閉狀態

          MYSQL雙主全庫同步復制的示例詳解

      二、配置主服務器(master)從服務器(slave)

        1.打開A服務器的my.cnf文件vi /etc/my.cnf,在文件的[mysqld]下添加如下內容

         server-id=1 #必須與其他服務器不同,且必須為1~232之間的正整數值

      log-bin=mysql-bin
         log-bin-index=mysql-bin

         MYSQL雙主全庫同步復制的示例詳解

         在B服務器my.cnf文件中的[mysqld]下添加上圖內容,只更改server-id值即可。

      server-id=2    
         log-bin=mysql-bin
         log-bin-index=mysql-bin

        2.在A服務器中的mysql安裝路徑下(rpm安裝路徑為/var/lib/mysql)創建全庫備份文件all.sql。

         創建命令:

      touch  /var/lib/mysql/all.sql

         備份命令:

      [root@test1 mysql]# mysqldump -uroot -p123 --all-databases > /var/lib/mysql/all.sql

         把all.sql文件拷貝到B服務器中的某個路徑下(以/var/lib/mysql路徑為例)進行恢復。

         恢復命令:

      [root@test2 /]# mysql -uroot -p123 < /var/lib/mysql/all.sql

        3.在A、B服務器的mysql中創建用戶用于同步。

         創建用戶:

      mysql> create user 'tongbu'@'%' identified by 'tongbu';

         授權:

      mysql> grant all on *.* to 'tongbu'@'%';

         刪除用戶:

      mysql> drop user '用戶名'@'%';

         A、B服務器用戶創建完成后,測試用戶相互是否可以遠程登陸mysql。

      [root@test1 /]# mysql -utongbu -ptongbu -h192.168.1.8
         [root@test2 /]# mysql -utongbu -ptongbu -h192.168.1.7

         測試無問題后重啟A、B服務器中的mysql服務:[root@test /]# service mysqld restart

        4.設置A為主服務器,B為從服務器。

         1)查看A服務器mysql中的二進制日志名和偏移量值

          命令:mysql> show master status\G

          如下圖

          MYSQL雙主全庫同步復制的示例詳解

         2)在B服務器中配置連接服務器

      mysql> stop slave;
          mysql> change master to
            -> master_host='192.168.1.7',
            -> master_user='tongbu',
            -> master_password='tongbu',
            -> master_log_file='mysql-bin.000024',
            -> master_log_pos=154;
          mysql> start slave;

          mysql> show slave status\G 輸入此命令查看Slave_IO_Running和Slave_SQL_Running的值是否為Yes,如下圖

          MYSQL雙主全庫同步復制的示例詳解

        5.設置B為主服務器,A為從服務器。

         1)查看B服務器mysql中的二進制日志名和偏移量

          命令:mysql> show master status\G

          MYSQL雙主全庫同步復制的示例詳解

         2)在A服務器中配置連接服務器。

      mysql> stop slave;
          mysql> change master to
            -> master_host='192.168.1.8',
            -> master_user='tongbu',
            -> master_password='tongbu',
            -> master_log_file='mysql-bin.000027',
            -> master_log_pos=154;
          mysql> start slave;
          mysql> show slave status\G 查看Slave_IO_Running和Slave_SQL_Running的值是否為Yes

      至此兩臺mysql數據庫互為主從同步配置完成。

      錯誤排查:

      1.Slave_IO_Running狀態錯誤

       檢查MySQL> show slave status\G;時,Slave_IO_Running狀態為Connecting錯誤,出現的原因主要分為三種,需要檢查配置:

       1)網絡不通

       2)賬戶權限配置錯誤,如密碼不對、賬號錯誤、地址錯誤

       3)二進制文件位置不對

      2.主備數據沖突或不同造成的異常

       主鍵沖突、表已存在等錯誤代碼如1062,1032,1060等,可以在mysql配置文件指定略過此類異常并繼續下條sql同步,這樣可以避免很多主從同步的異常中斷。打開/etc/ mysql下的my.cnf文件,在[mysqld]后添加如下代碼:

      slave-skip-errors = 1062,1032,1060

      3. 跳過異;謴屯

      mysql >slave stop;
       mysql >SET GLOBAL sql_slave_skip_counter = 1;
       mysql >slave start;

      以上就是MYSQL雙主全庫同步復制的示例詳解的詳細內容,更多請關注php中文網其它相關文章!


      學習教程快速掌握從入門到精通的SQL知識。




      日韩精品一区二区三区高清