1. 程式人生 > 資料庫 >Windows下MySQL主從複製的配置方法

Windows下MySQL主從複製的配置方法

MySQL主從複製允許將來自一個數據庫(主資料庫)的資料複製到一個或多個數據庫(從資料庫)。
主資料庫一般是實時的業務資料寫入和更新操作,從資料庫常用的讀取為主。

主從複製過程:

1、主伺服器上面的任何修改都會通過自己的 I/O tread(I/O 執行緒)儲存在二進位制日誌 Binary log 裡面。
2、從伺服器上面也啟動一個 I/O thread,通過配置好的使用者名稱和密碼,連線到主伺服器上面請求讀取二進位制日誌,然後把讀取到的二進位制日誌寫到本地的一個Realy log(中繼日誌)裡面。
3、從伺服器上面同時開啟一個 SQL thread 定時檢查 Realy log(這個檔案也是二進位制的),如果發現有更新立即把更新的內容在本機的資料庫上面執行一遍。

Windows下MySQL主從複製的配置方法

環境如下:
主資料庫:MySQL版本5.7,IP為192.168.1.11
從資料庫:MySQL版本5.7,IP為192.168.1.12

一、主資料庫配置

1、建立一個新的測試資料庫,名稱為testdb。

2、開啟my.ini,增加配置

# 主從複製
server-id=1 #設定server-id
log-bin=mysql-bin #開啟二進位制檔案 
#同步的資料庫,除此之外別的不同步(和下面binlog-ignore-db二選一)
binlog_do_db=testdb 
#不同步資料庫,除此之外都同步
#binlog-ignore-db = information_schema 
#binlog-ignore-db = MySQL

3、重啟MySQL服務

4、建立用於同步的使用者賬號
(1)以管理員身份開啟cmd視窗後,執行mysql -uroot -p,輸入密碼(為空則直接回車),登陸。
(2)先後執行下面3條命令創立使用者(使用者名稱MySlave,密碼123456),並重新整理許可權

CREATE USER 'MySlave'@'192.168.1.12' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'MySlave'@'192.168.1.12';
FLUSH PRIVILEGES;

5、檢視Master狀態,記錄二進位制檔名和位置

show master status;

Windows下MySQL主從複製的配置方法

二進位制檔案為mysql-bin.000005,位置為154

二、從資料庫配置

1、建立一個新的測試資料庫,名稱為testdb。

2、驗證同步賬號能否登陸
開啟Navicat for MySQL,新建連結,IP填寫192.168.1.11,使用者名稱MySlave,密碼123456,點選“連線測試”驗證是否能連線。

3、開啟my.ini,增加配置

server-id=2 #設定server-id
log-bin=mysql-bin #開啟二進位制檔案

4、重啟MySQL服務

5、cmd命令列登陸MySQL資料庫,執行下面命令進行手動同步

mysql > CHANGE MASTER TO MASTER_HOST='192.168.1.11',MASTER_PORT=3306,MASTER_USER='MySlave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=154;

Windows下MySQL主從複製的配置方法

6、啟動salve同步程序

mysql > start slave;

Windows下MySQL主從複製的配置方法

7、檢視slave狀態

執行命令:show slave status\G;

Slave_IO_Running: Yes,Slave_SQL_Running: Yes時說明兩個執行緒已啟動,主從複製配置成功。

Windows下MySQL主從複製的配置方法

8、測試
在主資料庫新建一個表,重新整理從資料庫,可以看到這個表。

備註:

在進行資料庫主從複製前,主資料庫中已有表和資料,則這部分資料不會同步,需要手動匯出,並在從資料庫中匯入。

以上就是Windows下MySQL主從複製的配置方法的詳細內容,更多關於MySQL主從複製的資料請關注我們其它相關文章!