Mysql主從復制

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ù)項的值,在配置從服務器時會用到這兩個值。

圖-1

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ù)進行測試。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容