MySQL主從又叫做Replication、AB復(fù)制。簡單講就是A和B兩臺(tái)機(jī)器做主從后,在A上寫數(shù)據(jù),另外一臺(tái)B也會(huì)跟著寫數(shù)據(jù),兩者數(shù)據(jù)實(shí)時(shí)同步;
成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括臺(tái)江網(wǎng)站建設(shè)、臺(tái)江網(wǎng)站制作、臺(tái)江網(wǎng)頁制作以及臺(tái)江網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,臺(tái)江網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到臺(tái)江省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
MySQL主從是基于binlog的,主上須開啟binlog才能進(jìn)行主從。
主從過程大致有3個(gè)步驟
1)主將更改操作記錄到binlog里;
2)從將主的binlog事件(sql語句)同步到從本機(jī)上并記錄在relaylog里;
3)從根據(jù)relaylog里面的sql語句按順序執(zhí)行;
主上有一個(gè)log dump線程,用來和從的I/O線程傳遞binlog
從上有兩個(gè)線程,其中I/O線程用來同步主的binlog并生成relaylog,另外一個(gè)SQL線程用來把relaylog里面的sql語句落地
同步參數(shù)“主”“從”上均可設(shè)置,只要設(shè)置一個(gè)就可以了
mysql主從復(fù)制三種模式:
1、異步復(fù)制:主服務(wù)器將執(zhí)行的事務(wù)發(fā)送到從服務(wù)器,不等待從服務(wù)器的響應(yīng),主服務(wù)器只是將事務(wù)發(fā)送出去;
2、半同步復(fù)制:主服務(wù)器會(huì)等待從服務(wù)器的響應(yīng),當(dāng)主服務(wù)器收到從服務(wù)器的響應(yīng)后,才繼續(xù)執(zhí)行下一個(gè)事務(wù);
3、同步復(fù)制:主服務(wù)器會(huì)等待從服務(wù)器的響應(yīng),主服務(wù)器將事務(wù)發(fā)送到從服務(wù)器后,必須等待從服務(wù)器的響應(yīng),從服務(wù)器確認(rèn)收到事務(wù)后,主服務(wù)器才能繼續(xù)執(zhí)行下一個(gè)事務(wù)。
拓展:MySQL主從復(fù)制模式可以實(shí)現(xiàn)數(shù)據(jù)備份、提高服務(wù)器性能、實(shí)現(xiàn)數(shù)據(jù)安全等功能,是MySQL數(shù)據(jù)庫系統(tǒng)中常用的一種復(fù)制方式。
IP的設(shè)置:A主機(jī) IP:10.10.0.119;Mask:255.255.0.0;B主機(jī) IP:10.10.8.112;Mask:255.255.0.0
在IP設(shè)置完成以后,需要確定兩主機(jī)的防火墻確實(shí)已經(jīng)關(guān)閉??梢允褂妹顂ervice iptables status查看防火墻狀態(tài)。如果防火墻狀態(tài)。
為仍在運(yùn)行。使用service iptables stop來停用防火墻。如果想啟動(dòng)關(guān)閉防火墻,可以使用setup命令來禁用或定制。最終以兩臺(tái)主機(jī)可以相互ping通為佳。
3.2 配置A主(master) B從(slave)模式;3.2.1 配置A 為master。
增加一個(gè)用戶同步使用的帳號:
GRANT FILE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’;
GRANTREPLICATION SLAVE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’。
賦予10.10.8.112也就是Slave機(jī)器有File權(quán)限,只賦予Slave機(jī)器有File權(quán)限還不行,還要給它REPLICATION SLAVE的權(quán)限才可以。
增加一個(gè)數(shù)據(jù)庫作為同步數(shù)據(jù)庫:create database test;
創(chuàng)建一個(gè)表結(jié)構(gòu):create table mytest (username varchar(20),password varchar(20));
修改配置文件:修改A的/etc/my點(diǎn)吸煙 f文件。
在my點(diǎn)吸煙 f配置項(xiàng)中加入下面配置:
server-id = 1 #Server標(biāo)識(shí)
log-bin
binlog-do-db=test #指定需要日志的數(shù)據(jù)庫
重起數(shù)據(jù)庫服務(wù):
service mysqld restart
查看server-id:
show variable like ‘server_id’。