三台机器搭建MySQL一主二从
第一步 安裝MySQL
(1)選擇三臺虛擬機,且保證三臺機器互聯互通,作為部署機器.本文選擇的三臺虛擬機是CentOS7.6
給這三臺機器分配主從,這三臺機器對應的IP地址為:
192.168.149.219???? master
192.168.149.220? ???slave
192.168.149.221???? slave
(2)查看當前系統中已經安裝的mysql
| rpm -qa |grep mariadb |
(3)正常情況下,上條應該顯示為空.切換為root用戶.執(zhí)行命令,安裝
| yum install mariadb-server mariadb |
(4)啟動
| systemctl start mariadb |
(5)登錄
| mysql -u root |
若顯示如下圖所示,則表明安裝成功.
?
另外兩臺也執(zhí)行同樣的操作.執(zhí)行之后,此時的狀態(tài)是,三臺機器上純凈的安裝了MySQL,沒有做任何配置.
第二步 修改三個節(jié)點的配置.
在主節(jié)點/etc/my.cnf文件中增加兩行.
| server-id=1 log-bin=mysql-bin |
在第一個從節(jié)點/etc/my.cnf文件中增加兩行.
| server-id=2 log-bin=mysql-bin |
在第二個從節(jié)點/etc/my.cnf文件中增加兩行.
| server-id=3 log-bin=mysql-bin |
以master節(jié)點為例,最終的文件看起來如下圖所示.
?
修改完配置之后重啟一下mysql服務
| systemctl restart mariadb |
第三步 master配置.
(1)登錄master,進入mysql操作界面,為另外兩臺機器分配權限。
| grant replication slave on *.* to 'replicate'@'192.168.149.221' identified by 'fanxiaoguang@0'; flush privileges; ? grant replication slave on *.* to 'replicate'@'192.168.149.220' identified by 'fanxiaoguang@0'; flush privileges; |
其中 'replicate'是自定義的用戶名,'192.168.149.221'和192.168.149.220'是slave節(jié)點的ip,'fanxiaoguang@0'是自定義的密碼。
(2)開放連接,使另外兩臺可以連接
第一種方式,開放端口,執(zhí)行
| iptables -I INPUT -p tcp --dport 3306 -j ACCEPT |
第二種方式,關閉本地防火墻(不建議)
| service iptables stop |
為了驗證是否成功開放,在另外兩臺測試一下。在另外兩臺分別在命令行鐘輸入
| mysql -h192.168.149.219 -ureplicate -pfanxiaoguang@0 |
若登錄成功則說明開發(fā)成功,兩臺機器可以互聯。
?
第四步 slave配置.
(兩臺slave配置方法一樣)
切換到 slave節(jié)點,以root用戶登錄mysql,
執(zhí)行以下操作
| mysql>stop slave;????????? mysql>change master to master_host='192.168.149.219',master_user='replicate',master_password='fanxiaoguang@0'; mysql>start slave; |
執(zhí)行命令,查看狀態(tài),
| show slave status\G; |
如圖所示,若其中這兩個地方是yes,那么就說明已經配置成功
?
第五步 驗證
所說的主備,當主節(jié)點數據庫發(fā)生改變,那么從數據庫要隨之改變。
我們在master節(jié)點中,test數據庫中創(chuàng)建表格并插入一條數據,可以看見slave節(jié)點也跟隨這改變了。
| use test; create table kyctest( name VARCHAR(20) ,tel VARCHAR(20) ); insert into kyctest(name,tel) values('kyc102','0238456'); |
為了更明顯,插入操作之后,在從節(jié)點查看數據庫。
| select * from kyctest; |
在主節(jié)點再次插入。
| insert into kyctest(name,tel) values('kyc','00000'); |
再從節(jié)點再次查看數據庫。
| select * from kyctest; |
?
總結
以上是生活随笔為你收集整理的三台机器搭建MySQL一主二从的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开机执行脚本
- 下一篇: MySQL集群中主从切换