天天看點

Windows mysql 主從複制

一、作業系統

主從 作業系統 mysql版本 IP位址
win10 5.7 192.168.1.102
win7 5.5 192.168.1.121

二、主資料庫操作

2.1 安裝目錄下找到my.ini檔案,在mysqld下添加主伺服器配置

server-id=1    #伺服器id

log-bin=E:\MySQL Server 5.7\mysql-bin    二進制檔案存放路徑

binlog-do-db=test1    需要同步的資料庫

儲存重新開機mysql。

2.2 授權

2.2.1 連接配接資料庫:mysql -u使用者名 -p密碼

2.2.2 設定權限:grant replication slave,reload,super on *.* to [email protected] identified by '123456'; 

ps: 給從服務192.168.1.121添權重限,使用者名:root,密碼:123456

2.2.3 檢視狀态:show master status; # 找到File 和 Position 的值記錄下來

Windows mysql 主從複制

三、從資料庫操作

3.1 在mysql安裝目錄下找到my.ini檔案,在mysqld下添加從伺服器端配置:

server-id=2   伺服器id

replicate-do-db=test1    需要同步的資料庫

3.2 從伺服器上首先測試連接配接主資料庫:mysql -h 192.168.1.102 -uroot -p123456

ps:如果連接配接不上,檢視主伺服器的防火牆是否關閉。

3.3 連接配接從伺服器:mysql -uroot -p123456

修改對資料庫的連接配接參數:

mysql>change master to master_host='192.168.1.102',master_user='root',master_password='123456', master_log_file='mysql-bin.000002',master_log_pos=18104;(這裡輸入的mysql-bin.000002和18104請替換為2.2.3中查詢出來的值 否則不會同步的)

3.4 啟動slave線程:start slave;

3.5 檢視slave狀态:show slave status\G

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

如果是這種情況,則表明同步成功!

四、遇到的問題及解決方法

4.1 在執行完3.4跟3.5的操作後,發現錯誤:

Got fatal error 1236 from master when reading data from binary log: 'Slave can not handle replication events with the checksum that master is configured to log; the first event 'mysql-bin.000002' at 18104, the last event read from './mysql-bin.000002' at 18104, the last byte read from './mysql-bin.000001' at 123.'

解決辦法:

這個錯誤應該是slave為低版本造成的,在主資料庫的my.ini中添加binlog_checksum =none。重新開機mysql

執行show master status; 

從伺服器重新連接配接。即可解決該問題!

4.2 在同步之前需要保證兩個資料庫中的資料一緻,是以需要将主伺服器的資料庫(test1)導出,并在從伺服器中導入。

4.2.1 導出:mysqldump -uroot test1 -p123456 >E:\test1.sql

4.2.2 導入:mysql> source E:\test1.sql;

繼續閱讀