MYSQL的主從復制知識點整理
當單臺MYSQL服務器無法滿足當前網(wǎng)站流量時的優(yōu)化方案。需要搭建mysql集群技術。
一、功能:
當向主服務器插入|修改|刪除數(shù)據(jù)時,數(shù)據(jù)會自動同步到從服務器。
注意:主從復制是單向的,只能主 -> 從
分為兩種類型:發(fā)射型(一主多從):一般使用在:備份、讀寫分離。
環(huán)形(多主多從):一般使用:當主服務器壓力大時、跨地區(qū)的網(wǎng)站實現(xiàn)數(shù)據(jù)同步
在環(huán)形結構中,如果同時向三臺服務器的同一表插入記錄會出現(xiàn)“ID沖突的問題”。
解決辦法:讓三臺服務器生成不同的ID;
第一臺:1,4,7...
第二臺:2,5,8..
第三臺:3,6,9...
這個可以MYSQL的配置文件中設置:
二、主從的原理(利用了bin日志)
Mysql中有一種日志叫做bin日志(二進制日志)。這個日志會記錄下所有修改了數(shù)據(jù)庫的SQL語句(insert,update,delete,ALTER TABLE,grant等等)。主從復制的原理其實就是把主服務器上的BIN日志復制到從服務器上執(zhí)行一遍,這樣從服務器上的數(shù)據(jù)就和主服務器上的數(shù)據(jù)相同了。
擴展:mysql中的日志:
查詢日志錯誤日志 Bin日志
慢日志:你可以設置一個時間閥值,如0.5秒,那么將來所以執(zhí)行時間超過這個值的SQL語句就會被記錄下來。這樣我們就可以把慢的SQL語句記錄下來,專門進行優(yōu)化。
用途:可以快速定位到網(wǎng)站中比較拖網(wǎng)站的SQL,然后可以優(yōu)化:建索引,緩存這個SQL的結果。
三、實際的配置
把windows系統(tǒng)的MYSQL做為主服務器,LINUX下的做為從服務器。
主服務器:
1. 開啟bin日志
修改mysql的配置文件:my.ini添加:
為服務器指定一個server-id(主從服務器的ID值不能重復)
如果是環(huán)形的服務器需要添加以下項:
log-slave-updates = on // 如果是環(huán)形多服務器,要設置這一項,
在主服務器上為從服務器創(chuàng)建一個用來同步數(shù)據(jù)的賬號
登錄MYSQL
執(zhí)行一個SQL:
創(chuàng)建了一個只有REPLICATION SLAVE權限的賬號:用戶名:slave密碼:1234
在主服務器執(zhí)行SQL查看主服務器當前bin日志的狀態(tài)
注意:每次修改數(shù)據(jù)時這兩個值都會改變,所以在查看了這兩個值之后,不要操作主服務器、直接到從服務器配置完成之后,否則這個值對應不上會同步失敗。
從服務器(linux):
開啟bin日志
修改配置文件/etc/my.cnf
設置一個server-id:
3. 如果是環(huán)形的服務器需要添加以下項:
log-slave-updates = on // 如果是環(huán)形多服務器,要設置這一項,
4.在從服務器上執(zhí)行SQL語句配置主服務器的地址:
登錄MYSQL:
設置從服務器并啟動復制功能
5.執(zhí)行SQL查詢從服務器的狀態(tài)是否配置成功:
如果是兩個YES那么代碼成功!完成!
說明:在配置成功之前,主服務器上的數(shù)據(jù)不會自動到從服務器上來。所以需要在配置之前先把主服務器上的所有數(shù)據(jù)先手動的導到從服務器上來,然后配置完主從之后,數(shù)據(jù)以后就同步了。
應用場合:
從服務器做為數(shù)據(jù)的備份服務器。當服務器壓力比較大時可以使用主從服務器實現(xiàn)讀、寫分離來分流減輕服務器的壓力??绲赜蚓W(wǎng)站的優(yōu)化
制作一個留言板的功能,考慮到不同地域優(yōu)化的架構思路?
以上就是關于MYSQL主從復制的全部原理知識點,感謝大家的學習和對腳本之家的支持。
相關文章
解析MYSQL 數(shù)據(jù)庫導入SQL 文件出現(xiàn)亂碼的問題
本篇文章是對MYSQL數(shù)據(jù)庫導入SQL文件出現(xiàn)亂碼的問題進行了詳細的分析介紹,需要的朋友參考下2013-06-06