天天看點

Windows伺服器MYSQL資料庫主從同步配置

以mysql5.7版本資料庫為例:

 master ip: 192.168.10.5

slave ip: 192.168.10.6

一、 Master 上的配置:

1.修改mysql資料庫配置檔案my.ini,存放路徑一般在C:\ProgramData\MySQL\MySQL Server 5.7,(C槽中ProgramData目錄預設隐藏),自定義路徑的例外。修改内容:

# master服務唯一辨別

server-id = 1

# 二進制同步資料檔案

log-bin = mysql-bin (mysql-bin自定義)

#binlog_do_db 指定記錄二進制日志的資料庫,即需要複制的資料庫名,如果複制多個資料庫,重複設定這個選項即可。

binlog-do-db = testDB(test是你要同步的資料庫,多個資料庫請重複設定binlog-do-db )

配置完,重新開機mysql服務

2.登入mysql資料庫 為主從同步建立一個使用者,并賦予主從同步授權

create user 'backup'@'192.168.10.6' identified by '123456';

grant replication slave on *.* to 'backup'@'192.168.10.6' identified by '123456';

flush privileges;

二、 Slave 上的配置:

1.修改my.ini配置檔案

server-id=2  #不能和master一樣

relay-log=slave-relay-bin

relay-log-index=slave-relay-bin.index

#relay-log 啟動MySQL二進制日志,可以用來做資料備份和崩潰恢複,或主伺服器挂掉了,将此從伺服器作為其他從伺服器的主伺服器。

#replicate-do-db 指定同步的資料庫,如果複制多個資料庫,重複設定這個選項即可。若在master端不指定binlog-do-db,則在slave端可用replication-do-db來過濾。

#replicate-ignore-db 不需要同步的資料庫,如果有多個資料庫,重複設定這個選項即可。

配置完成後重新開機mysql服務

2.先停止slave

stop slave;

3.在master上執行

show master status;

Windows伺服器MYSQL資料庫主從同步配置

記錄File和Position;

4.在slave上執行一下sql,MASTER_LOG_FILE=主資料File,MASTER_LOG_POS=主資料庫Postition;

change MASTER to MASTER_HOST='master 的ip',MASTER_PORT=3306,MASTER_USER='backup',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=49213;

執行成功後,

start slave;

檢視slave狀态 

show slave status \G

Windows伺服器MYSQL資料庫主從同步配置

二者均為YES表示主從配置成功。

驗證一下,在master上同步的資料庫建立一個表,看slave庫中是否有該表。

##其他情況:

1.如果主庫已有資料的情況新增從庫,在以上stop slave;步驟之後,

2.master上停止mysql服務(如果不能停服,請執行一下語句)

3.鎖定所有表:flush tables with read lock;(此時資料庫處于隻讀狀态)

4.檢視狀态:show master status; 記錄File和Position

5.将master上的data目錄下要同步資料庫檔案夾拷貝到slave的data目錄中,master上ibdata1檔案也拷過去,覆寫注意備份一下

6.從庫執行,注意替換第四步記錄的File和Position

change MASTER to MASTER_HOST='master 的ip',MASTER_PORT=3306,MASTER_USER='backup',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=49213;

7.start slave;

8.show slave status;狀态是否正常

9.解鎖master上的表:unlock tables;

10.驗證

問題:

配置過程中我遇到一個問題;

Slave_SQL_Running為NO

Windows伺服器MYSQL資料庫主從同步配置
Windows伺服器MYSQL資料庫主從同步配置

有個表記錄報錯,我這裡在my.ini配置檔案裡加slave-skip-errors直接錯誤跳過了,然後就好了。

Windows伺服器MYSQL資料庫主從同步配置

以上就是我的配置過程,希望對你有幫助。