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