MySql 主从模式原理及操作步骤
mysql是現在普遍使用的數據庫,但是如果宕機了必然會造成數據丟失。為了保證mysql數據庫的可靠性。就要會一些提高可靠性的技術。
主從復制原理如下。
slave(從服務器)
master(主服務器)
mysql主從是異步復制過程
master開啟bin-log功能,日志文件用于記錄數據庫的讀寫增刪
需要開啟3個線程,master IO線程,slave開啟 IO線程 SQL線程,
Slave 通過IO線程連接master,并且請求某個bin-log,position之后的內容。
MASTER服務器收到slave IO線程發來的日志請求信息,io線程去將bin-log內容,position返回給slave IO線程。
slave服務器收到bin-log日志內容,將bin-log日志內容寫入relay-log中繼日志,創建一個master.info的文件,該文件記錄了master ip 用戶名 密碼 master bin-log名稱,bin-log position。
slave端開啟SQL線程,實時監控relay-log日志內容是否有更新,解析文件中的SQL語句,在slave數據庫中去執行。
?
準備兩個mysql,一個做主,一個做從。防火墻,selinux都要關閉,保證可以ping通對方
主服務器配置:
vi/etc/ntp.conf
解釋:ntp服務,是用來使計算機時間同步化的一種協議,它可以使計算機對其服務器或時鐘源(如石英鐘,GPS等等)做同步化,它可以提供高精準度的時間校正(LAN上與標準間差小于1毫秒,WAN上幾十毫秒),且可介由加密確認的方式來防止惡毒的協議攻擊。時間按NTP服務器的等級傳播。按照離外部UTC源的遠近把所有服務器歸入不同的Stratum(層)中。
添加:
server 127.127.1.0
fudge 127.127.1.0 stratum 8
service ntpd start ? ?#因為同步數據 兩個服務器的時間也要同步。
稍后要在從服務器執行來同步時間
vi/etc/my.cnf?
在配置文件49行
其他內容都可以保持默認。
?
---------------------------------------------------------------------------------------------------------
在主服務器登錄mysql 給從服務器授權。
mysql>?grant replication slave on *.* to zs@'192.168.43.%' identified by '123456';
授權用戶zs 密碼為123456 允許192.168.43.0的網絡連接 一會兒要在slave上使用這個賬號
---------------------------------------------------------------------------------------------------------
show master status; ???#此命令查看主服務器的bin-log日志文件名稱和position點
從服務器就是要指定這個文件maste-bin.000001?(隨著mysql增刪修改日志文件名字也有可能改變)? 和 107 (position點 主服務器增刪修改都會改變)所以現在開始就不要再在主服務器創表干啥的了,
mysqldump -uroot -p --opt --all-databases >/all_databases.sql ?#導出主數據庫的數據
scp -r /all_databases.sql root@192.168.43.2:/ ? #用scp把數據復制到從服務器。
因為主從復制是從主從關系建立完畢開始同步的。也就是現在?position 107之前的內容復制不了所以要手動復制主之前的數據導入從數據庫。
?
從服務器配置:?
/usr/sbin/ntpdate 192.168.43.22 ?#和主服務器同步時間。192.168.43.22為主服務器ip
?mysql -u root -p ?</all_databases.sql ? #導入數據
?
vi /etc/my.cnf
修改后重啟mysql服務
進入從服務器的mysql
change master to master_host='192.168.43.22',master_user='zs',master_password='123456',master_log_file='maste-bin.000001',master_log_pos=107;
?start slave; ?#開啟SQL線程
show slave status\G; ? ?查看從服務器狀態
注意兩個都要是yes才是正常。
查看效果,在主服務器上創建個庫看看。
從數據庫也會有
同樣刪掉數據庫從數據庫也會復制。
主庫上刪除一個數據庫。
從庫上也沒了。所以還是要備份數據庫的。
總結
以上是生活随笔為你收集整理的MySql 主从模式原理及操作步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++:C语言小程序—批量重命名文件
- 下一篇: 24. PE结构-PE详解之基址重定位详