環境
配置Mysql的MasterSlave至少需要兩臺機器。我這里使用三臺虛擬機進行測試。三臺機器配置完全一樣,MySQL安裝的路徑也是一樣:
第一臺:10.1.5.181; Windows 2008 DataCenter + MySQL Community Server 5.6.10.1
第二臺:10.1.5.182; Windows 2008 DataCenter + MySQL Community Server 5.6.10.1
第三臺:10.1.5.183; Windows 2008 DataCenter + MySQL Community Server 5.6.10.1
第一臺10.1.5.181用作master,其他兩臺用做slave。
配置Master
在10.1.5.181這臺服務器上找到MySQL的配置文件my.ini。我的具體路徑是在C:\ProgramData\MySQL\MySQL Server 5.6下。
打開配置文件,在最下面添加如下配置:
************************************************************************************
#Master start
#日志輸出地址 主要同步使用
log-bin=master-bin.log
#同步數據庫
binlog-do-db=test
#主機id 不能和從機id重復
server-id=1
#Master end
************************************************************************************
master的配置比較少,server-id是為這一組master/slave服務器定的唯一id,master/slave服務器中不能重復。在binlog-do-db中填寫對象要同步的數據庫,如果有多個,用逗號分隔,或再寫一行如binlog-do-db=test2。
配置Slave
同樣在第二臺機器上10.1.5.181找到配置文件my.ini。打開配置文件,在最下面添加如下配置:
*****************************************************************************
report-host = 10.1.5.181
report-user = root
report-password = root123
log-bin = slave-bin.log
replicate-do-db = test
server-id = 2
*****************************************************************************
這里需要添加master的IP,連接master的用戶名和密碼,生產環境中需要新建一個用戶專門來處理replication,這里沒有新建用戶,用root做測試。端口沒有配置,就是使用默認的3306,如果端口有變化,則通過report-port=?來配置。log-bin是記錄日志的位置。
然后通過命令start slave來啟動mysql的復制功能。如果在start slave過程中出現異常:
The server is not configured as slave; fix in config file or with CHANGE MASTER TO
可以通過下面語句解決:
change master to master_host='10.1.5.181',master_user='root',master_password='root123',master_log_file='master-bin.000001' ,master_log_pos=120;
使用show slave status 命令來查來看運行狀態。特別關注兩個屬性,是否為“Yes”,如果都為“Yes”,則說明運行正常。
Slave_IO_Running:連接到主庫,并讀取主庫的日志到本地,生成本地日志文件
Slave_SQL_Running:讀取本地日志文件,并執行日志里的SQL命令。
同樣的配置再在第三臺機器上配置一下,server-id修改成3。重啟slave和master的mysqld服務。然后測試,在三臺服務器上都確保有數據庫test,然后在master服務器的test數據庫上建表和數據,之后再兩臺slave上面都會看見數據的同步。
Mysql的MasterSlave同步時通過二進制文件進行同步的。在Master端,你可以在C:\ProgramData\MySQL\MySQL Server 5.6\data的master-bin.log日志文件里看見所有同步的sql腳本,master-bin.log是配置master時候輸入的。在slave端,你可以在MySQL02-relay-bin類似的文件中找到日志。
http://www.cnblogs.com/haoxinyue/archive/2013/04/02/2995280.html