Windows mysql 雙向同步設(shè)置方法 詳細篇
1.1 環(huán)境搭建
準備兩臺Windows NT 主機,分別安裝好iKEY Server windows 版本,確定版本無誤,確保mysql服務(wù)正常啟動,確保兩臺主機處于同一個局域網(wǎng)中,確定好哪臺做為主、備機器,假設(shè)A為主機,B為備機,假設(shè)A主機IP地址為:192.168.1.101,B主機IP地址為192.168.1.102
1.2 創(chuàng)建同步帳戶
分別在A、B節(jié)點上登陸mysql 數(shù)據(jù)庫,創(chuàng)建同步帳戶并賦予同步權(quán)限,如下:
A節(jié)點操作:
運行cmd, cd進入iKEY版本安裝目錄下的iKEY\mysql\bin下,然后執(zhí)行mysql –uroot –p123456 登陸mysql數(shù)據(jù)庫執(zhí)行:
mysql>GRANT REPLICATION SLAVE ON *.* TO "yw[j1] "@"192.168.1.10[j2] 2" IDENTIFIED BY 'ym[j3] ';
mysql>flush privileges;
B節(jié)點操作步驟如上,權(quán)限賦予如下:
mysql>GRANT REPLICATION SLAVE ON *.* TO "yw[j4] "@"192.168.1.10[j5] 1" IDENTIFIED BY 'ym[j6] ';
mysql>flush privileges;
執(zhí)行以上操作后,運行net stop mysql, 分別停止兩節(jié)點數(shù)據(jù)庫.
1.3 配置數(shù)據(jù)同步選項
1.3.1 A主機操作
安裝好的iKEY Server windows 版本后,會在安裝目錄下的iKEY\mysql\backup文件夾下生成一個my_master.cnf配置文件,在A主機上將my_master.cnf 文件復(fù)制到安裝目錄下的iKEY\mysql\bin文件夾下,并重命名為my.cnf,重命名之前請先備份原有my.cnf文件,以下介紹my.cnf做的修改之處:
log-bin=mysql-bin #同步事件的日志記錄文件
binlog-do-db=ikey_db #提供數(shù)據(jù)同步服務(wù)的數(shù)據(jù)庫日志
binlog-do-db=ikey_log #提供數(shù)據(jù)同步服務(wù)的數(shù)據(jù)庫日志
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 #同步的數(shù)據(jù)庫
replicate-do-db=ikey_log #同步的數(shù)據(jù)庫
1.3.2 B主機操作
安裝好的iKEY Server windows 版本后,會在安裝目錄下的iKEY\mysql\backup文件夾下生成一個my_slave.cnf配置文件,在B備機上將my_slave.cnf 文件復(fù)制到安裝目錄下的iKEY\mysql\bin文件夾下,并重命名為my.cnf,重命名之前請先備份原有my.cnf文件,修改之處同A主機,不同配置在于以下:
server-id=2
master-host=192.168.1.101 #主機A的地址
以上需要注意的地方是,要定義master-host的主機IP地址,請根據(jù)實際情況進行修改。
請確保以上同步用戶、主機IP、和同步帳戶密碼與所設(shè)配置相同.
1.3.3 驗證數(shù)據(jù)同步
當以上配置完畢后,分別重新啟動主機A和備機B數(shù)據(jù)庫,運行net start mysql,
查看同步配置情況,登陸mysql 數(shù)據(jù)庫。
在A節(jié)點上查看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節(jié)點上查看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節(jié)點上查看同步狀態(tài),我們可以清楚的看到所設(shè)置的同步配置信息以及當前同步狀態(tài)。
同樣可以在B節(jié)點上查看master 信息以及在A節(jié)點上查看slave 信息。
添加數(shù)據(jù)在A主機上,同時測試B備機上數(shù)據(jù)是否同步,以及反向測試。
1.4 同步維護
當需要更改節(jié)點IP 時,Mysql 同步配置也需要進行相應(yīng)修改,在更改節(jié)點IP之前,我們先做如下操作:
分別在A、B節(jié)點上執(zhí)行mysql> stop slave; 停止當前同步狀態(tài)。
假如此時A 節(jié)點IP 改為192.168.1.103,需要做如下操作:
1.4.1 A節(jié)點:
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節(jié)點:
更改B--àA方向同步的帳戶權(quán)限
mysql>show grants for ym@192.168.1.101(原A節(jié)點IP);
查看到原賦予從192.168.1.101 連接的權(quán)限,此時我們刪除此同步帳戶,并重新賦予192.168.1.103 連接的權(quán)限,如下:
mysql>drop user ym@192.168.1.101;
mysql>flush privileges;
mysql>grant replication slave on *.* to ym@192.168.1.103 identified by 'ym';
mysql>flush privileges;
然后修改A-àB方向同步配置項:
mysql>CHANGE MASTER TO
-> MASTER_HOST='192.168.1.103', # Master服務(wù)器地址
-> MASTER_USER='ym',
->MASTER_PASSWORD='ym', -> ->MASTER_LOG_FILE='mysql-bin.000002', # 剛才我們記錄A節(jié)點數(shù)據(jù)庫要執(zhí)行復(fù)制的日志文件。
-> MASTER_LOG_POS=118; #剛才記錄的A節(jié)點數(shù)據(jù)庫要復(fù)制的日志文件位置。
Query OK, 0 rows affected (0.02 sec)
同時需要查看此時B節(jié)點的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節(jié)點mysql主配置文件中
master-host=192.168.1.103 #主機A的IP地址
1.4.3 接著A節(jié)點:
修改B-àA方向同步配置項:
mysql>CHANGE MASTER TO
->MASTER_LOG_FILE='mysql-bin.000003', # 剛才我們記錄B節(jié)點數(shù)據(jù)庫要執(zhí)行復(fù)制的日志文件。
-> MASTER_LOG_POS=98; #剛才記錄的B節(jié)點數(shù)據(jù)庫要復(fù)制的日志文件位置。
Query OK, 0 rows affected (0.02 sec)
然后針對A、B節(jié)點啟動同步狀態(tài),分別運行start slave; 然后查看同步狀態(tài),確保在每臺機器上查看show slave status;得出
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
即處于正常同步狀態(tài)。
以上是針對單節(jié)點IP修改所做的操作,如果A、B節(jié)點IP 都需要修改,參考以上配置進行操作,最好先針對單個節(jié)點IP 進行修改,并確保單向同步?jīng)]有問題后,再進行第二個節(jié)點IP修改以及配置。
[j1]執(zhí)行同步權(quán)限的用戶
[j2]主機B的IP地址
[j3]同步帳戶密碼
[j4]執(zhí)行同步權(quán)限的用戶
[j5]主機A的IP地址
[j6]同步帳戶密碼
相關(guān)文章
MySQL數(shù)據(jù)庫中數(shù)值字段類型長度int(11)和Decimal(M,D)詳解
這篇文章主要介紹了MySQL數(shù)據(jù)庫中數(shù)值字段類型長度int(11)和Decimal(M,D)字段詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06分享MYSQL插入數(shù)據(jù)時忽略重復(fù)數(shù)據(jù)的方法
當程序中insert時,已存在的數(shù)據(jù)不插入,不存在的數(shù)據(jù)insert。在網(wǎng)上搜了下,可以使用存儲過程或者是用NOT EXISTS 來判斷是否存在2013-09-09MySQL復(fù)合查詢(多表查詢、子查詢)的實現(xiàn)
MySQL復(fù)合查詢是指在一個SQL語句中使用多個查詢條件,以過濾和檢索數(shù)據(jù),本文主要介紹了MySQL復(fù)合查詢(多表查詢、子查詢)的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-12-12mysql報錯:MySQL server version for the right syntax to use nea
這篇文章主要介紹了mysql報錯:MySQL server version for the right syntax to use near type=InnoDB的解決方法,涉及MySQL語句的使用技巧,需要的朋友可以參考下2016-01-01教你自動恢復(fù)MySQL數(shù)據(jù)庫的日志文件(binlog)
如果MySQL服務(wù)器啟用了二進制日志,你可以使用mysqlbinlog工具來恢復(fù)從指定的時間點開始2014-05-05MySQL 字符串截取相關(guān)函數(shù)小結(jié)
本文是腳本之家小編給大家收藏整理的關(guān)于MySQL 字符串截取相關(guān)函數(shù)小結(jié),非常不錯,具有參考借鑒價值,需要的朋友參考下吧2018-04-04