當單臺MYSQL服務器無法滿足當前網站流量時的優化方案。需要搭建mysql集群技術。
一、功能:
當向主服務器插入|修改|刪除數據時,數據會自動同步到從服務器。
注意:主從復制是單向的,只能主 -> 從
分為兩種類型:發射型(一主多從):一般使用在:備份、讀寫分離。

環形(多主多從):一般使用:當主服務器壓力大時、跨地區的網站實現數據同步

在環形結構中,如果同時向三臺服務器的同一表插入記錄會出現“ID沖突的問題”。
解決辦法:讓三臺服務器生成不同的ID;
第一臺:1,4,7...
第二臺:2,5,8..
第三臺:3,6,9...
這個可以MYSQL的配置文件中設置:
二、主從的原理(利用了bin日志)
Mysql中有一種日志叫做bin日志(二進制日志)。這個日志會記錄下所有修改了數據庫的SQL語句(insert,update,delete,ALTER TABLE,grant等等)。主從復制的原理其實就是把主服務器上的BIN日志復制到從服務器上執行一遍,這樣從服務器上的數據就和主服務器上的數據相同了。
擴展:mysql中的日志:
查詢日志錯誤日志 Bin日志
慢日志:你可以設置一個時間閥值,如0.5秒,那么將來所以執行時間超過這個值的SQL語句就會被記錄下來。這樣我們就可以把慢的SQL語句記錄下來,專門進行優化。
用途:可以快速定位到網站中比較拖網站的SQL,然后可以優化:建索引,緩存這個SQL的結果。
三、實際的配置
把windows系統的MYSQL做為主服務器,LINUX下的做為從服務器。
主服務器:
1. 開啟bin日志
修改mysql的配置文件:my.ini添加:

為服務器指定一個server-id(主從服務器的ID值不能重復)

如果是環形的服務器需要添加以下項:
log-slave-updates = on // 如果是環形多服務器,要設置這一項,
在主服務器上為從服務器創建一個用來同步數據的賬號
登錄MYSQL
執行一個SQL:
創建了一個只有REPLICATION SLAVE權限的賬號:用戶名:slave密碼:1234

在主服務器執行SQL查看主服務器當前bin日志的狀態

注意:每次修改數據時這兩個值都會改變,所以在查看了這兩個值之后,不要操作主服務器、直接到從服務器配置完成之后,否則這個值對應不上會同步失敗。
從服務器(linux):
開啟bin日志
修改配置文件/etc/my.cnf


設置一個server-id:

3. 如果是環形的服務器需要添加以下項:
log-slave-updates = on // 如果是環形多服務器,要設置這一項,
4.在從服務器上執行SQL語句配置主服務器的地址:
登錄MYSQL:

設置從服務器并啟動復制功能 
5.執行SQL查詢從服務器的狀態是否配置成功:


如果是兩個YES那么代碼成功!完成!
說明:在配置成功之前,主服務器上的數據不會自動到從服務器上來。所以需要在配置之前先把主服務器上的所有數據先手動的導到從服務器上來,然后配置完主從之后,數據以后就同步了。
應用場合:
從服務器做為數據的備份服務器。當服務器壓力比較大時可以使用主從服務器實現讀、寫分離來分流減輕服務器的壓力??绲赜蚓W站的優化
制作一個留言板的功能,考慮到不同地域優化的架構思路?
以上就是關于MYSQL主從復制的全部原理知識點,感謝大家的學習和對腳本之家的支持。
您可能感興趣的文章:- MySQL主從復制延遲原因以及解決方案
- mysql主從復制配置過程
- 全面解讀MySQL主從復制,從原理到安裝配置
- MySQL 主從復制原理與實踐詳解
- MySQL主從復制與讀寫分離原理及用法詳解
- Mysql主從復制作用和工作原理詳解
- MYSQL 完全備份、主從復制、級聯復制、半同步小結
- 深入理解MySQL主從復制線程狀態轉變
- mysql 主從復制如何跳過報錯