MySQL數據庫自身提供的主從複製功能可以方便的實現數據的多處自動備份,實現數據庫的拓展。MySQL之間複製的基礎是二進制日誌文件,一臺MySQL數據庫一旦啓用二進制日誌後,其作爲master,其他數據庫作爲slave通過一個I/O線程與主服務器保持通信,並監控master的二進制日誌文件的變化,如果發現master二進制日誌文件發生變化,則會把變化複製到自己的中繼日誌中,然後slave的一個SQL線程會把相關的“事件”執行到自己的數據庫中,以此實現從數據庫和主數據庫的一致性,也就實現了主從複製。
搭建MySQL主從複製需要提前準備:
主服務器IP:192.168.177.128
從服務器1IP:192.168.177.151
從服務器2IP:192.168.177.152
搭建MySQL主從同步:
主服務器:
1.開啓時間同步
systemctl stop firewalld.service //關閉防火牆
setenforce 0
yum -y install ntp //安裝ntp
vim /etc/ntp.conf //添加如下2行
server 127.127.177.0 //本地是時鐘源//
fudge 127.127.177.0 stratum 8 //設置時間層級爲8(限制在15內)//
systemctl restart ntpd.service //重啓ntpd服務
在這裏我裝的是mysql5.5,在之前我有安裝過,可以看我以前的博客。
mysqladmin –u root password ’abc123’ //安裝完之後爲root用戶設置密碼
vim /etc/my.cnf //進入配置文件
server-id = 11
log-bin=master-bin //主服務器日誌文件//
log-slave-updates=true //從服務器更新二進制日誌//
systemctl restart mysqld.service //重啓服務
3.進入mysql
mysql -u root –p abc123
從服務器(兩臺從服務器配置完全相同):
1.開啓時間同步
yum install ntp ntpdate –y //安裝ntp
systemctl start ntpd.service //開啓ntpd服務
systemctl stop firewalld.service //關閉防火牆
setenforce 0
/usr/sbin/ntpdate 192.168.177.128 //進行時間同步,輸入的是主服務器的地址//
2.安裝mysql
在這裏我裝的是mysql5.5,在之前我有安裝過,可以看我以前的博客。
mysqladmin –u root password ’abc123’ //安裝完之後爲root用戶設置密碼
vim /etc/my.cnf
server-id = 22
relay-log=relay-log-bin //從主服務器上同步日誌文件記錄到本地//
relay-log-index=slave-relay-bin.index //定義relay-log的位置和名稱//
systemctl restart mysqld.service //重啓服務
3.進入mysql
mysql -u root –p abc123
還有另一臺從服務器我就不在這裏進行配置了,另一臺配置與這臺完全一樣。
驗證主從同步:
在主服務器裏(192.168.177.128):創建一個新數據庫
在從服務器裏(192.168.177.151):看是否有新創建的數據庫
以上,驗證主從同步