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

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

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

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


1、環(huán)境
三臺centos7服務器 同一安裝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主服務器

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

修改/etc/my.cnf配置文件,增加服務器id,配置二進制日志選項

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

兩臺從服務器查看是否同步
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