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軟件包
(2)修改mysql服務的配置文件
[root@localhost ~]# vim /etc/my.cnf//mysql服務配置文件
(3)啓動mysqld服務並設置開機自啓動
(4)本地登錄mysql數據庫,向slave授權並查看當前使用的binlog日誌與偏移量
[root@localhost ~]# mysql -uroot//使用root用戶名本地登錄數據庫
授權:
查看master狀態:
3、配置slave服務器
(1)yum方式安裝mysql、mysql-server軟件包
(2)修改mysql服務的配置文件、啓動mysqld服務並設置開機自啓
[root@slave ~]# vim /etc/my.cnf
(3)本地登錄mysql數據庫,指定從服務器的主服務器並開啓slave功能
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;//指定當前主服務器上的位偏移量
(4)查看slave功能是否正常工作
4、測試
master服務器上新建一個庫zhy
slave服務器上查看數據庫,同樣出現zhy數據庫:
至此,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的原因:從服務器本機沒有主數據庫上的庫和表或者表結構不一致。