《Mysql入門(mén)mysql同步復(fù)制搭建方法指南詳細(xì)步驟》要點(diǎn):
本文介紹了Mysql入門(mén)mysql同步復(fù)制搭建方法指南詳細(xì)步驟,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
1.利用MySQL自身的數(shù)據(jù)庫(kù)同步功能(下面參考自網(wǎng)上的文章,寫(xiě)的非常詳細(xì)了)
MySQL從3.23.15版本以后提供數(shù)據(jù)庫(kù)復(fù)制功能.利用該功能可以實(shí)現(xiàn)兩個(gè)數(shù)據(jù)庫(kù)同步,主從模式,互相備份模式的功能.
數(shù)據(jù)庫(kù)同步復(fù)制功能的設(shè)置都在mysql的設(shè)置文件中體現(xiàn).mysql的配置文件(一般是my.cnf),在unix環(huán)境下在/etc/mysql/my.cnf或者在mysql用戶(hù)的home目錄下的my.cnf.
windows環(huán)境中,如果c:根目錄下有my.cnf文件則取該配置文件.當(dāng)運(yùn)行mysql的winmysqladmin.exe工具時(shí)候,該工?具會(huì)把?c:根目錄下的my.cnf命名為mycnf.bak.并在winnt目錄下創(chuàng)建my.ini.mysql服務(wù)器啟動(dòng)時(shí)候會(huì)讀該配置文件.所以可以把?my.cnf中的內(nèi)容拷貝到my.ini文件中,用my.ini文件作為mysql服務(wù)器的配置文件.
設(shè)置方法:
設(shè)置范例環(huán)境:
(天天網(wǎng)絡(luò)禁止字符)作系統(tǒng):window2000professional
mysql:4.0.4-beta-max-nt-log
Aip:10.10.10.22
Bip:10.10.10.53
A:設(shè)置
1.增加一個(gè)用戶(hù)最為同步的用戶(hù)帳號(hào):
GRANTFILEON*.*TObackup@'10.10.10.53'IDENTIFIEDBY‘1234'
2.增加一個(gè)數(shù)據(jù)庫(kù)作為同步數(shù)據(jù)庫(kù):
createdatabasebackup
B:設(shè)置
1.增加一個(gè)用戶(hù)最為同步的用戶(hù)帳號(hào):
GRANTFILEON*.*TObackup@'10.10.10.22'IDENTIFIEDBY‘1234'
2.增加一個(gè)數(shù)據(jù)庫(kù)作為同步數(shù)據(jù)庫(kù):
createdatabasebackup
主從模式:A->B
A為master
修改Amysql的my.ini文件.在mysqld配置項(xiàng)中加入下面配置:
server-id=1
log-bin
#設(shè)置需要記錄log可以設(shè)置log-bin=c:mysqlbakmysqllog設(shè)置日志文件的目錄,
#其中mysqllog是日志文件的名稱(chēng),mysql將建立不同擴(kuò)展名,文件名為mysqllog的幾個(gè)日志文件.
binlog-do-db=backup#指定需要日志的數(shù)據(jù)庫(kù)
重起數(shù)據(jù)庫(kù)服務(wù).
用showmasterstatus命令看日志情況.
B為slave??start?slave
修改Bmysql的my.ini文件.在mysqld配置項(xiàng)中加入下面配置:
server-id=2
master-host=10.10.10.22
master-user=backup#同步用戶(hù)帳號(hào)
master-password=1234
master-port=3306
master-connect-retry=60預(yù)設(shè)重試間隔60秒
replicate-do-db=backup告訴slave只做backup數(shù)據(jù)庫(kù)的更新
重起數(shù)據(jù)庫(kù)
用showslavestatus看同步配置情況.
注意:由于設(shè)置了slave的配置信息,mysql在數(shù)據(jù)庫(kù)目錄下生成master.info
所以如有要修改相關(guān)slave的配置要先刪除該文件.否則修改的配置不能生效.
雙機(jī)互備模式.
如果在A加入slave設(shè)置,在B加入master設(shè)置,則可以做B->A的同步.
在A的配置文件中mysqld配置項(xiàng)加入以下設(shè)置:
master-host=10.10.10.53
master-user=backup
master-password=1234
replicate-do-db=backup
master-connect-retry=10
在B的配置文件中mysqld配置項(xiàng)加入以下設(shè)置:
log-bin=c:mysqllogmysqllog
binlog-do-db=backup
注意:當(dāng)有錯(cuò)誤產(chǎn)生時(shí)*.err日志文件.同步的線(xiàn)程退出,當(dāng)糾正錯(cuò)誤后要讓同步機(jī)制進(jìn)行工作,運(yùn)行slavestart
重起AB機(jī)器,則可以實(shí)現(xiàn)雙向的熱備.
測(cè)試:
向B批量插入大數(shù)據(jù)量表AA(1872000)條
A數(shù)據(jù)庫(kù)每秒鐘可以更新2500條數(shù)據(jù).
2.數(shù)據(jù)庫(kù)目錄同步,方法和文件同步一樣,設(shè)置好需要同步的兩個(gè)數(shù)據(jù)庫(kù)目錄就可以了!
缺點(diǎn)很明顯,數(shù)據(jù)同步只能單向進(jìn)行,可以作為備份方案
3.用專(zhuān)用的MySQL同步軟件進(jìn)行同步
這方面的軟件有SQLBalance和MyReplicator,優(yōu)點(diǎn)是方便直觀,還有很多爭(zhēng)強(qiáng)功能!
缺點(diǎn)和2一樣,只能單項(xiàng)同步!
當(dāng)然你也可以修改鏡像網(wǎng)站的程序?yàn)樘峤粩?shù)據(jù)到母數(shù)據(jù)庫(kù),讀取則在當(dāng)前鏡像下的數(shù)據(jù),不過(guò),修改起來(lái)麻煩!普通用戶(hù)修改也非常難!呵呵,大家了解一下就可以!給大家一個(gè)思路!有能力的朋友可以試試阿!
4.關(guān)于MySQL論壇的數(shù)據(jù)同步
由于數(shù)據(jù)來(lái)源的不可控制(不好表達(dá)),論壇數(shù)據(jù)是實(shí)時(shí)的,而且還要考慮來(lái)自鏡像論壇的數(shù)據(jù),如何實(shí)現(xiàn)鏡像論壇與母論壇數(shù)據(jù)同步呢?
用1中介紹的MySQL自帶的數(shù)據(jù)庫(kù)同步功能互相備份模式就可以實(shí)現(xiàn)的!
不過(guò),具體的應(yīng)用我沒(méi)有測(cè)試!穩(wěn)定性不敢保證!
有能力的朋友推薦用下面這種思路來(lái)同步,相對(duì)來(lái)說(shuō)減少點(diǎn)效率,但能減少發(fā)生的錯(cuò)誤!
比如鏡像論壇數(shù)據(jù)同步:
1.母論壇和鏡像論壇的數(shù)據(jù)全寫(xiě)在母論壇數(shù)據(jù)庫(kù)里,主從模式,讀取只在本地讀取,這個(gè)需要修改程序!
2.每次寫(xiě)數(shù)據(jù),都同時(shí)提交到兩個(gè)數(shù)據(jù)庫(kù)中,安全,但是效率很差,也得修改程序
歡迎參與《Mysql入門(mén)mysql同步復(fù)制搭建方法指南詳細(xì)步驟》討論,分享您的想法,維易PHP學(xué)院為您提供專(zhuān)業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/13933.html