聽(tīng)說(shuō)Mysql你很豪橫?-------------MySQL5.7主從同步
生產(chǎn)環(huán)境中,服務(wù)器不可能只有一臺(tái),而多臺(tái)服務(wù)器的存在必然要用到主從復(fù)制同步。
一、主從復(fù)制原因與解決
1、原因
在企業(yè)網(wǎng)站中,后端MySQL數(shù)據(jù)庫(kù)只有一臺(tái)時(shí),會(huì)有以下問(wèn)題: 遇到單點(diǎn)故障,服務(wù)不可用 無(wú)法處理大量的并發(fā)數(shù)據(jù)請(qǐng)求 數(shù)據(jù)丟失將會(huì)造成很大損失

2、解決辦法
增加MySQL數(shù)據(jù)庫(kù)服務(wù)器,對(duì)數(shù)據(jù)進(jìn)行備份,形成主備 確保主備MySQL數(shù)據(jù)庫(kù)服務(wù)器數(shù)據(jù)是一樣的 主服務(wù)器宕機(jī)了,備份服務(wù)器繼續(xù)工作,數(shù)據(jù)有保障 MySQL主從復(fù)制與讀寫(xiě)分離是密切相關(guān)的

3、更高級(jí)的解決方案
通過(guò)主從復(fù)制的方式來(lái)同步數(shù)據(jù),再通過(guò)讀寫(xiě)分離來(lái)提升數(shù)據(jù)庫(kù)的并發(fā)負(fù)載能力
Amoeba:是一個(gè)以MySQL為底層數(shù)據(jù)存儲(chǔ),并對(duì)應(yīng)用提供MySQL協(xié)議接口的proxy,外號(hào)變形蟲(chóng)
讀取請(qǐng)求發(fā)送給從服務(wù)器時(shí),采用輪詢(xún)調(diào)度算法
主服務(wù)器掛掉,我們會(huì)采用MHA解決(此實(shí)驗(yàn)用不到)
此實(shí)驗(yàn)涉及到的賬號(hào)權(quán)限
主從同步賬號(hào) 節(jié)點(diǎn)服務(wù)器開(kāi)放調(diào)度賬號(hào) Amoeba代理賬號(hào)

4、MySQL主從復(fù)制的類(lèi)型
基于語(yǔ)句的復(fù)制(默認(rèn)) 在主服務(wù)器上執(zhí)行的語(yǔ)句,從服務(wù)器執(zhí)行同樣的語(yǔ)句 基于行的復(fù)制 把改變的內(nèi)容復(fù)制到從服務(wù)器 混合類(lèi)型的復(fù)制 一旦發(fā)現(xiàn)基于語(yǔ)句無(wú)法精確復(fù)制時(shí),就會(huì)采用基于行的復(fù)制
5、主從復(fù)制的工作過(guò)程
當(dāng)你更新數(shù)據(jù)庫(kù)數(shù)據(jù)的時(shí)候 ,首先 將日志文件寫(xiě)入二進(jìn)制日志文件,然后通過(guò)io線(xiàn)程,將binarylog日志文件同步到中繼日志,然后sql線(xiàn)程讀取中繼線(xiàn)程 將數(shù)據(jù)復(fù)制到從服務(wù)器這里來(lái) 需要注意的點(diǎn) 權(quán)限,要讓slave服務(wù)器有權(quán)限復(fù)制 ,不能讓所有人都可以復(fù)制,所以需要?jiǎng)?chuàng)建一個(gè)賬號(hào)來(lái)解決。


二、主從復(fù)制實(shí)驗(yàn)實(shí)操
1、環(huán)境
三臺(tái)centos7服務(wù)器 同一安裝mysql5.7版本的 一臺(tái)做master 兩臺(tái)做slave 主 :192.168.110.134 server-id 10 從 :192.168.110.135 server-id 30 從 :192.168.110.136 server-id 20
2、實(shí)驗(yàn)過(guò)程
(1)手動(dòng)編譯安裝mysql5.7版本
具體編譯可參展小編之前的博客
(2)配置mysql主服務(wù)器
修改/etc/my.cnf配置文件,增加服務(wù)器id,配置二進(jìn)制日志選項(xiàng)
(3)登陸mysql服務(wù),授權(quán)所有從服務(wù)器復(fù)制二進(jìn)制日志的權(quán)限

修改/etc/my.cnf配置文件,增加服務(wù)器id,配置二進(jìn)制日志選項(xiàng)

登陸mysql服務(wù),配置組從同步
[object Object]
這里克隆的虛擬機(jī)有坑,具體解決方案可查看我排障集錦
3、實(shí)驗(yàn)驗(yàn)證

兩臺(tái)從服務(wù)器查看是否同步 mysql> show databases; ±-------------------+ | Database | ±-------------------+ | information_schema | | school | ‘//成功同步’ | mysql | | performance_schema | | sys | ±-------------------+ 5 rows in set (0.00 sec)
本文轉(zhuǎn)載自博客園:
https://blog.csdn.net/weixin_47219935/article/details/108246727