本文實例講述了MySQL主從復制與讀寫分離原理及用法。分享給大家供大家參考,具體如下:
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,婁星企業(yè)網(wǎng)站建設,婁星品牌網(wǎng)站建設,網(wǎng)站定制,婁星網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,婁星網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。影響MySQL-A數(shù)據(jù)庫的操作,在數(shù)據(jù)庫執(zhí)行后,都會寫入本地的日志系統(tǒng)A中。
假設,實時的將變化了的日志系統(tǒng)中的數(shù)據(jù)庫事件操作,在MYSQL-A的3306端口,通過網(wǎng)絡發(fā)給MYSQL-B。
MYSQL-B收到后,寫入本地日志系統(tǒng)B,然后一條條的將數(shù)據(jù)庫事件在數(shù)據(jù)庫中完成。
那么,MYSQL-A的變化,MYSQL-B也會變化,這樣就是所謂的MYSQL的復制,即MYSQL replication。
在上面的模型中,MYSQL-A就是主服務器,即master,MYSQL-B就是從服務器,即slave。
日志系統(tǒng)A,其實它是MYSQL的日志類型中的二進制日志,也就是專門用來保存修改數(shù)據(jù)庫表的所有動作,即bin log?!咀⒁釳YSQL會在執(zhí)行語句之后,釋放鎖之前,寫入二進制日志,確保事務安全】
日志系統(tǒng)B,并不是二進制日志,由于它是從MYSQL-A的二進制日志復制過來的,并不是自己的數(shù)據(jù)庫變化產(chǎn)生的,有點接力的感覺,稱為中繼日志,即relay log。
可以發(fā)現(xiàn),通過上面的機制,可以保證MYSQL-A和MYSQL-B的數(shù)據(jù)庫數(shù)據(jù)一致,但是時間上肯定有延遲,即MYSQL-B的數(shù)據(jù)是滯后的。
【即便不考慮什么網(wǎng)絡的因素,MYSQL-A的數(shù)據(jù)庫操作是可以并發(fā)的執(zhí)行的,但是MYSQL-B只能從relay log中讀一條,執(zhí)行下。因此MYSQL-A的寫操作很頻繁,MYSQL-B很可能跟不上?!?/p>
數(shù)據(jù)如何不被丟失
備份
讀寫分離
數(shù)據(jù)庫負載均衡
高可用
1.準備環(huán)境
兩臺windows操作系統(tǒng) ip分別為: 172.27.185.1(主)、172.27.185.2(從)
2.連接到主服務(172.27.185.1)服務器上,給從節(jié)點分配賬號權(quán)限。
GRANT REPLICATION SLAVE ON . TO ‘root'@‘172.27.185.2' IDENTIFIED BY ‘root';
3.在主服務my.ini文件新增
server-id=200 log-bin=mysql-bin relay-log=relay-bin relay-log-index=relay-bin-index
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。