1.主從復制原理
? ? ? ?MySQL 主從復制基于主服務器在二進制日志中跟蹤所有對數(shù)據(jù)庫的更改(新建/修改表、插入、更新、刪除數(shù)據(jù)等)。每個從服務器從主服務器接收已經(jīng)記錄到其二進制日志保存的更新,以便從服務器可以對其數(shù)據(jù)拷貝執(zhí)行相同的操作。
? ? ? ?從服務器設(shè)置為復制主服務器的數(shù)據(jù)后,它連接主服務器并等待更新過程。如果從服務器失去與主服務器之間的連接,從服務器保持定期嘗試連接,直到它能夠繼續(xù)幀聽更新。由--master-connect-retry 選項控制重試間隔,默認為60秒。
? ? ? ?MySQL 使用3個線程來執(zhí)行復制功能,其中1個在主服務器上,另兩個在從服務器上。
(1)當發(fā)出START SLAVE時,從服務器創(chuàng)建一個I/O線程,用來連接主服務器并讓它發(fā)送記錄在其二進制日志中的語句。
(2)主服務器創(chuàng)建一個線程將二進制日志中的內(nèi)容發(fā)送到從服務器。該線程可以識別為主服務器上SHOW PROCESSLIST的輸出中的Binlog Dump線程。
(3)從服務器I/O線程讀取主服務器Binlog Dump線程發(fā)送的內(nèi)容并將該數(shù)據(jù)拷貝到從服務器數(shù)據(jù)目錄中的本地文件中,即中繼日志。
(4)第3個線程是SQL線程,是從服務器創(chuàng)建用于讀取中繼日志并執(zhí)行日志中包含的更新語句。
(5)有多個從服務器的主服務器為每個當前連接的從服務器創(chuàng)建一個線程;每個從服務器有自己的I/O和SQL線程。
2.主服務器配置
(1)環(huán)境:windows7 64位,MySQL5.1
(2)修改mysql的配置文件my.ini
添加:
#開啟二進制日志
log-bin
#主服務器id號
server-id=15
#對指定的數(shù)據(jù)庫記錄二進制日志
binlog-do-db=RW_DB
(3)為從服務器添加mysql賬戶并配置權(quán)限
grant replication slave on *.* to 'replication'@'%' identified by '123456';
flush privileges;
授權(quán)完成后,可以進入mysql數(shù)據(jù)庫,執(zhí)行以下語句:
select Repl_slave_priv from user where user = 'replication';
查看值是否為Y。
(4)記錄File 和 Position數(shù)據(jù)項的值
執(zhí)行以下命令:show master status;
查看主服務器狀態(tài),記錄File 及Position 數(shù)據(jù)項的值,在配置從服務器時會用到這兩個值。

3.從服務器配置
(1)環(huán)境:windows7 32位,MySQL5.1
(2)修改mysql的配置文件my.ini
添加:
#從服務器id號
server-id=94
(3)重啟MySQL
(4)設(shè)置參數(shù)
change master to
master_host = 'XX.XX.XX.15',
master_user = 'replication',
master_password = '123456',
master_log_file = 'ZX-201609262058-bin.000002',
master_log_pos = 106;
(5)連接主服務器
start slave;
(6)檢查數(shù)據(jù)庫查看相關(guān)參數(shù)
show slave status;
至此,MySQL的主從復制已配置完成,可以新建表,插入數(shù)據(jù),修改和刪除數(shù)據(jù)進行測試。