程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> Windows mysql 雙向同步設置方法 詳細篇

Windows mysql 雙向同步設置方法 詳細篇

編輯:關於MYSQL數據庫

1.1         環境搭建

准備兩台Windows NT 主機,分別安裝好iKEY Server windows 版本,確定版本無誤,確保mysql服務正常啟動,確保兩台主機處於同一個局域網中,確定好哪台做為主、備機器,假設A為主機,B為備機,假設A主機IP地址為:192.168.1.101,B主機IP地址為192.168.1.102

1.2         創建同步帳戶

分別在A、B節點上登陸mysql 數據庫,創建同步帳戶並賦予同步權限,如下:

A節點操作:

運行cmd, cd進入iKEY版本安裝目錄下的iKEY\mysql\bin下,然後執行mysql –uroot –p123456 登陸mysql數據庫執行:

mysql>GRANT REPLICATION SLAVE ON *.* TO "yw[j1] "@"192.168.1.10[j2] 2" IDENTIFIED BY 'ym[j3] ';

mysql>flush privileges;

B節點操作步驟如上,權限賦予如下:

mysql>GRANT REPLICATION SLAVE ON *.* TO "yw[j4] "@"192.168.1.10[j5] 1" IDENTIFIED BY 'ym[j6] ';

mysql>flush privileges;

執行以上操作後,運行net stop mysql, 分別停止兩節點數據庫.

1.3         配置數據同步選項

1.3.1    A主機操作

安裝好的iKEY Server windows 版本後,會在安裝目錄下的iKEY\mysql\backup文件夾下生成一個my_master.cnf配置文件,在A主機上將my_master.cnf 文件復制到安裝目錄下的iKEY\mysql\bin文件夾下,並重命名為my.cnf,重命名之前請先備份原有my.cnf文件,以下介紹my.cnf做的修改之處:

log-bin=mysql-bin #同步事件的日志記錄文件

binlog-do-db=ikey_db #提供數據同步服務的數據庫日志

binlog-do-db=ikey_log #提供數據同步服務的數據庫日志

server-id=1
master-host=192.168.1.102  #主機B的IP地址
master-user=ym  #同步帳戶
master-password=ym  #同步帳戶密碼
master-port=3306  #端口,主機的MYSQL端口
master-connect-retry=60  #重試間隔60秒
replicate-do-db=ikey_db  #同步的數據庫

replicate-do-db=ikey_log  #同步的數據庫

1.3.2    B主機操作

安裝好的iKEY Server windows 版本後,會在安裝目錄下的iKEY\mysql\backup文件夾下生成一個my_slave.cnf配置文件,在B備機上將my_slave.cnf 文件復制到安裝目錄下的iKEY\mysql\bin文件夾下,並重命名為my.cnf,重命名之前請先備份原有my.cnf文件,修改之處同A主機,不同配置在於以下:

server-id=2
master-host=192.168.1.101  #主機A的地址

以上需要注意的地方是,要定義master-host的主機IP地址,請根據實際情況進行修改。

請確保以上同步用戶、主機IP、和同步帳戶密碼與所設配置相同.

1.3.3    驗證數據同步

當以上配置完畢後,分別重新啟動主機A和備機B數據庫,運行net start mysql,

查看同步配置情況,登陸mysql 數據庫。

在A節點上查看Master 信息:

mysql> show master status;

+------------------+----------+------------------+------------------+

| File             | Position | Binlog_Do_DB     | Binlog_Ignore_DB |

+------------------+----------+------------------+------------------+

| mysql-bin.000001 |       98 | ikey_db,ikey_log |                  |

+------------------+----------+------------------+------------------+

1 row in set (0.00 sec)

在B節點上查看Slave信息:

mysql> show slave status\G;

*************************** 1. row ***************************

             Slave_IO_State: Waiting for master to send event

                Master_Host: 192.168.1.101

                Master_User: ym

                Master_Port: 3306

              Connect_Retry: 60

            Master_Log_File: mysql-bin.000001

        Read_Master_Log_Pos: 98

             Relay_Log_File: testBBB-relay-bin.000002

              Relay_Log_Pos: 235

      Relay_Master_Log_File: mysql-bin.000001

           Slave_IO_Running: Yes

          Slave_SQL_Running: Yes

            Replicate_Do_DB: ikey_db,ikey_log

通過在B節點上查看同步狀態,我們可以清楚的看到所設置的同步配置信息以及當前同步狀態。

同樣可以在B節點上查看master 信息以及在A節點上查看slave 信息。

添加數據在A主機上,同時測試B備機上數據是否同步,以及反向測試。

 

1.4         同步維護

當需要更改節點IP 時,Mysql 同步配置也需要進行相應修改,在更改節點IP之前,我們先做如下操作:

分別在A、B節點上執行mysql> stop slave; 停止當前同步狀態。

假如此時A 節點IP 改為192.168.1.103,需要做如下操作:

1.4.1  A節點:

mysql> show master status;

+------------------+----------+------------------+------------------+

| File             | Position | Binlog_Do_DB     | Binlog_Ignore_DB |

+------------------+----------+------------------+------------------+

| mysql-bin.000002 |       118 | ikey_db,ikey_log |                  |

+------------------+----------+------------------+------------------+

1 row in set (0.00 sec)

1.4.2  B節點:

更改B--àA方向同步的帳戶權限

mysql>show grants for [email protected](原A節點IP);

查看到原賦予從192.168.1.101 連接的權限,此時我們刪除此同步帳戶,並重新賦予192.168.1.103 連接的權限,如下:

mysql>drop user [email protected];

mysql>flush privileges;

mysql>grant replication slave on *.* to [email protected] identified by 'ym';

mysql>flush privileges;

然後修改A-àB方向同步配置項:

mysql>CHANGE MASTER TO

    -> MASTER_HOST='192.168.1.103',   # Master服務器地址

    -> MASTER_USER='ym',

    ->MASTER_PASSWORD='ym',    -> ->MASTER_LOG_FILE='mysql-bin.000002',  # 剛才我們記錄A節點數據庫要執行復制的日志文件。

    -> MASTER_LOG_POS=118;   #剛才記錄的A節點數據庫要復制的日志文件位置。

Query OK, 0 rows affected (0.02 sec)

同時需要查看此時B節點的Master信息,同步LOG日志及POS位置

mysql> show master status;

+------------------+----------+------------------+------------------+

| File             | Position | Binlog_Do_DB     | Binlog_Ignore_DB |

+------------------+----------+------------------+------------------+

| mysql-bin.000003 |       98 | ikey_db,ikey_log |                  |

+------------------+----------+------------------+------------------+

1 row in set (0.00 sec)

 

同時請修改B節點mysql主配置文件中

master-host=192.168.1.103  #主機A的IP地址

1.4.3  接著A節點:

修改B-àA方向同步配置項:

mysql>CHANGE MASTER TO

->MASTER_LOG_FILE='mysql-bin.000003',  # 剛才我們記錄B節點數據庫要執行復制的日志文件。

    -> MASTER_LOG_POS=98;   #剛才記錄的B節點數據庫要復制的日志文件位置。

Query OK, 0 rows affected (0.02 sec)

 

然後針對A、B節點啟動同步狀態,分別運行start slave; 然後查看同步狀態,確保在每台機器上查看show slave status;得出

           Slave_IO_Running: Yes

          Slave_SQL_Running: Yes

即處於正常同步狀態。

 

以上是針對單節點IP修改所做的操作,如果A、B節點IP 都需要修改,參考以上配置進行操作,最好先針對單個節點IP 進行修改,並確保單向同步沒有問題後,再進行第二個節點IP修改以及配置。


cript">

 [j1]執行同步權限的用戶

cript">

 [j2]主機B的IP地址

cript">

 [j3]同步帳戶密碼

cript">

 [j4]執行同步權限的用戶

cript">

 [j5]主機A的IP地址

cript">

 [j6]同步帳戶密碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved