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

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

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

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


1、環(huán)境
三臺centos7服務(wù)器 同一安裝mysql5.7版本的
一臺做master
兩臺做slave
主 :192.168.110.134 server-id 10
從 :192.168.110.135 server-id 30
從 :192.168.110.136 server-id 20
2、實驗過程
(1)手動編譯安裝mysql5.7版本
具體編譯可參展小編之前的博客
(2)配置mysql主服務(wù)器

修改/etc/my.cnf配置文件,增加服務(wù)器id,配置二進(jìn)制日志選項
(3)登陸mysql服務(wù),授權(quán)所有從服務(wù)器復(fù)制二進(jìn)制日志的權(quán)限

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

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

兩臺從服務(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