標籤:linux mysql 主從同步 伺服器
Mysql主從同步搭建
mysql主從同步利用binlog日誌中記錄的sql語句實現資料同步,進而實現自動備份資料的目的。
在搭建mysql主從同步時,要求一台伺服器做master即主伺服器,一台伺服器做slave即從伺服器,slave伺服器從master伺服器上同步binlog日誌中記錄的sql語句,在本機資料庫中執行這些語句來實現資料庫同步的目的。
注意,在搭建mysql主從同步服務時,slave上的資料庫必須與master伺服器上的資料庫中的庫和表完全相同,即有同樣的庫,表且表結構完全相同。
本文使用兩台RHEL5.9作業系統的虛擬機器來完成實驗,其中,master伺服器IP地址為192.168.1.253,slave伺服器的IP地址為192.168.1.252
實驗步驟:
1、在兩台伺服器上配置靜態IP地址並確保物理網路連接正常
2、配置master伺服器
(1)yum方式安裝mysql、mysql-server軟體包
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/B2/wKiom1Ppus6iGF48AAA8BPPv8zc438.jpg" title="1.png" alt="wKiom1Ppus6iGF48AAA8BPPv8zc438.jpg" />
(2)修改mysql服務的設定檔
[[email protected] ~]# vim /etc/my.cnf//mysql服務組態檔
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/B3/wKioL1PpvCvT8O0GAAE9ZUZDiFI368.jpg" title="2.png" alt="wKioL1PpvCvT8O0GAAE9ZUZDiFI368.jpg" />
(3)啟動mysqld服務並設定開機自啟動
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/B2/wKiom1PpuyCS7BlIAAB1qr78yOA466.jpg" title="3.png" alt="wKiom1PpuyCS7BlIAAB1qr78yOA466.jpg" />
(4)本地登入mysql資料庫,向slave授權並查看當前使用的binlog日誌與位移量
[[email protected] ~]# mysql -uroot//使用root使用者名稱本地登入資料庫
授權:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/B3/wKioL1PpvEnxidPsAADqG3pSR1o823.jpg" title="4.png" alt="wKioL1PpvEnxidPsAADqG3pSR1o823.jpg" />
查看master狀態:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/B3/wKioL1PpvFiQjEhfAADZ-fLI0Yw158.jpg" title="5.png" alt="wKioL1PpvFiQjEhfAADZ-fLI0Yw158.jpg" />
3、配置slave伺服器
(1)yum方式安裝mysql、mysql-server軟體包
(2)修改mysql服務的設定檔、啟動mysqld服務並設定開機自啟
[[email protected] ~]# vim /etc/my.cnf
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/B3/wKioL1PpvGPT5r62AAFg38O5PbY544.jpg" title="6.png" alt="wKioL1PpvGPT5r62AAFg38O5PbY544.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/B3/wKioL1PpvHXTBYLbAAB-xhUhW2w653.jpg" title="7.png" alt="wKioL1PpvHXTBYLbAAB-xhUhW2w653.jpg" />
(3)本地登入mysql資料庫,指定從伺服器的主伺服器並開啟slave功能
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/B2/wKiom1Ppu2nwTDIDAADd2kHhpl8783.jpg" title="8.png" alt="wKiom1Ppu2nwTDIDAADd2kHhpl8783.jpg" />
change master to
-> master_host=‘192.168.1.253‘,//指定主伺服器地址
-> master_user=‘slaveuser‘,//指定同步時使用的使用者名稱
-> master_password=‘123‘,//指定同步時使用的密碼
-> master_log_file=‘mysqld-bin.00000.1‘,//指定當前的主伺服器使用的binlog日誌
-> master_log_pos=98;//指定當前主伺服器上的位位移量
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/B3/wKioL1PpvJLCfQRDAABRUKmJnc4193.jpg" title="9.png" alt="wKioL1PpvJLCfQRDAABRUKmJnc4193.jpg" />
(4)查看slave功能是否正常工作
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/B2/wKiom1Ppu4bjYsx9AAIsQ_DKuM4589.jpg" title="10.png" alt="wKiom1Ppu4bjYsx9AAIsQ_DKuM4589.jpg" />
4、測試
master伺服器上建立一個庫zhy
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/B2/wKiom1Ppu5jxnv6WAADa7bHsnSE940.jpg" title="11.png" alt="wKiom1Ppu5jxnv6WAADa7bHsnSE940.jpg" />
slave伺服器上查看資料庫,同樣出現zhy資料庫:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/B2/wKiom1Ppu6bxolEdAACFFASrqtI554.jpg" title="12.png" alt="wKiom1Ppu6bxolEdAACFFASrqtI554.jpg" />
至此,Mysql主從同步搭建完成且可以正常工作,但其中有幾點需要注意:
1、設定slave伺服器時在指定其主伺服器時要在每個項目後面加逗號分隔
2、如需更改slave伺服器的主伺服器的設定需要先停止slave服務,然後再更改,使用命令stop slave可以停止slave服務
3、只有Slave_IO_Running與Slave_SQL_Running兩個進程的狀態全為Yse時才表明slave服務正常工作,否則都表示其工作異常。
4、Slave_IO_Running進程狀態為NO的原因:
(1)串連不上主要資料庫伺服器(物理線路,安全設定問題,授權問題)
(2)當前binlog日誌名和pos點和主伺服器的不一致
5、Slave_SQL_Running進程狀態為NO的原因:從伺服器本機沒有主要資料庫上的庫和表或者表結構不一致。
本文出自 “煙頭網管” 部落格,請務必保留此出處http://8838848.blog.51cto.com/8828848/1538999