這篇文章主要介紹了mysql基于日志的主從復(fù)制是什么,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
目前成都創(chuàng)新互聯(lián)已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、鶴山網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
總有人問我 會不會讀寫分離,我有時(shí)真的不知道怎么回答,這么滴吧,技術(shù)本身不難你,難的是咱們能不能遇得到這么大的項(xiàng)目。如果是真有這么大項(xiàng)目,光讀寫分離這個(gè)事肯定不是一兩個(gè)人在搞,應(yīng)該是多人協(xié)作的。
所以呢!我沒搞過。
但是……
不能做實(shí)驗(yàn)環(huán)境嗎?(一個(gè)尷尬的笑容)
我從找文檔資料到實(shí)驗(yàn)落地,一共花了3天時(shí)間(因?yàn)椴皇侨於荚趪@著這個(gè)事情哇)?;靖愣?,就是說,如果有人問我會不會,我說我已經(jīng)操作過了,不是什么難事。
在主庫上操作的有
mysql > show master status; #查看主庫狀態(tài)
mysql > grant replication slave on . to ‘slave‘@’%ip%’ identified by ‘password’;# to 后面的 解釋: ‘slave’ 代表哪個(gè)賬戶,@后面的是從服務(wù)器的IP by 后面的是密碼;
systemctl status firewalld # 查看防火墻狀態(tài)
firewall-cmd –list-all # 查看防火墻的端口列表
firewall-cmd –permanent –zone=public –add-port=3306/tcp # 放行 3306 端口
firewall-cmd –reload # 重啟防火墻
另外 iptable 的話 可以自行看看哇
在從庫上操作主要有
- mysql> stop slave; // 停止復(fù)制
- mysql> reset slave; // 重置復(fù)制
- mysql> start slave; // 開啟復(fù)制
- mysql> show slave status\G; # 查看狀態(tài)
環(huán)境介紹
- 主服務(wù)器 192.168.5.238 centos 7.4
- 從服務(wù)器 192.168.5.239 centos 7.4
- 利用日志來進(jìn)行主從配置
主服務(wù)器上的配置
防火墻操作,防止后面出奇怪的問題 參考常用幾個(gè)命令的防火墻操作
mysql 的日志相關(guān)的配置 其他的先不用動 主要是看這段
# aster live copy configure
log-bin=mysql-bin //日志文件名
binlog_format=mixed // 這個(gè)日志格式,還有幾個(gè)選項(xiàng),大家都選mixed 可選項(xiàng)statement/row/mixed,如果想深究 可以去看官方文檔
server-id = 238 //為了不重復(fù)使用 盡量采用服務(wù)器IP 的最后一位來命名
skip_name_resolve=ON //這個(gè)直接寫上就可以了,參考一下別人的文檔
expire_logs_days = 10 //設(shè)置日志保存的天數(shù),這個(gè)吧 我覺得可以不用加,加上也無所謂,因?yàn)樵跍y試環(huán)境,如果正式上線跑的話,就要掂量一下了
# /etc/init.d/mysql restart // 這個(gè)不一定是這個(gè)命令 看自己是用什么方式安裝的 centos 也有 systemctl restart mysql的 這個(gè)不懂可以多研究一下linux操作
##如果兩臺服務(wù)器不是復(fù)制的話,auto.cnf 的uuid應(yīng)該會不一樣,如果是復(fù)制的話,就該看看了,這個(gè)在mysql的安裝目錄的 /var、目錄下如果有 就把這個(gè)文件刪除或者mv 備份一下
mysql配置一下復(fù)制權(quán)限
# mysql -uroot -p “password” //登入mysql服務(wù)器、會讓你輸入密碼
mysql>GRANT replication slave ON . TO ‘slave‘@’%’ IDENTIFIED BY ‘111111’; // 解釋 replication 分配復(fù)制的權(quán)限 這個(gè). 可以操作那個(gè)庫 后面的‘slave‘@’%’ 表示任何主機(jī)用slave都可以進(jìn)行從庫復(fù)制,也可以指定到IP 后面就是密碼哈
mysql> show master status;
+——————+———-+————–+——————+——————-+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+——————+———-+————–+——————+——————-+
| mysql-bin.000010 | 2812 | | | |
+——————+———-+————–+——————+——————-+
1 row in set (0.00 sec)
看到上面的這個(gè)表表示成功了
從庫上的配置
修改my.cnf
log-bin=mysql-bin //日志文件名
binlog_format=mixed //日志格式
server-id =239 //服務(wù)器ID 這個(gè)和主服務(wù)器一個(gè)解釋,用IP的尾巴
# expire_logs_days = 10 //這個(gè)我注釋掉了,
# early-plugin-load = “” //這個(gè)暫時(shí)沒有使用,如果啟用可以配置此項(xiàng),主從復(fù)制這個(gè)項(xiàng)并不是關(guān)鍵項(xiàng)
relay_log = mysql-relay-bin //這個(gè)是個(gè)從庫的復(fù)制日志
relay_log_index=relay_log.index //日志索引
# /etc/init.d/mysql restart // 這個(gè)不一定是這個(gè)命令 看自己是用什么方式安裝的 centos 也有 systemctl restart mysql的 這個(gè)不懂可以多研究一下linux操作
設(shè)置從庫
進(jìn)入從庫的mysql 終端 #mysql -uroot -p //進(jìn)入終端
# mysql -uroot -p //進(jìn)入終端(之所以寫詳細(xì)點(diǎn),就是怕看到此文的人會誤會操作不全)
關(guān)閉slave # 注意配置從庫之前先關(guān)閉掉slave;
mysql>stop slave; //這個(gè)是關(guān)閉從庫哇,保證一把過
修改master參數(shù)
mysql>change master to
master_host=’192.168.5.238’,
master_user=’slave’,
master_password=’這里填上面設(shè)置主庫復(fù)制權(quán)限時(shí)的密碼’,
master_log_file=’mysql-bin.000010’, //這里填 在主庫 show master status 的文件名,位置對著抄就好了
master_log_pos=2812; //在主庫的show master status 里找
啟動從庫
mysql>start slave; //啟動從庫
查看主從復(fù)制是否成功
mysql> show slave status \G;
Slave_IO_State: Waiting for master to send event Master_Host: 192.168.5.238 Master_User: slave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000010 Read_Master_Log_Pos: 2812 Relay_Log_File: mysql-relay-bin.000013 Relay_Log_Pos: 3025 Relay_Master_Log_File: mysql-bin.000010 Slave_IO_Running: Yes Slave_SQL_Running: Yes看到 Slave_IO_Running 和 Slave_SQL_Running 值 都為 Yes 說明就成功了,如果不成,請看下面的提示信息,對著谷歌 百度 應(yīng)該能找出來的
我在配置時(shí)遇到了一個(gè)問題,就是報(bào)uuid錯誤,原因是我的實(shí)驗(yàn)環(huán)境是一個(gè)虛擬機(jī)安裝完mysql后復(fù)制的,所以導(dǎo)致mysql的uuid 相同了
# cd /usr/local/mysql/var
# mv auto.cnf auto.cnf.back //這個(gè)你看有沒有,沒有就不操作,有就這樣
# /etc/init.d/mysql restart //重啟數(shù)據(jù)庫
然后執(zhí)行show slave status\G;觀察兩個(gè)yes
至此,基于日志的主從復(fù)制就完成了
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享mysql基于日志的主從復(fù)制是什么內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!
新聞名稱:mysql基于日志的主從復(fù)制是什么-創(chuàng)新互聯(lián)
本文URL:http://jinyejixie.com/article16/csdedg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、企業(yè)建站、云服務(wù)器、網(wǎng)站收錄、App設(shè)計(jì)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容