MySQL主從復(fù)制搭建

MySQL安裝點擊此處

為宜豐等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及宜豐網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都做網(wǎng)站、宜豐網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

MySQL主從介紹

MySQL主從又叫做Replication、AB復(fù)制。簡單講就是A和B兩臺機(jī)器做主從后,在A上寫數(shù)據(jù),另外一臺B也會跟著寫數(shù)據(jù),兩者數(shù)據(jù)實時同步。
MySQL主從是基于binlog的,主上須開啟binlog才能進(jìn)行主從。

指定數(shù)據(jù)庫同步操作:
環(huán)境說明:需求是創(chuàng)建主從復(fù)制環(huán)境,要求master端只同步主庫中的test庫到 slave端

master端IP:10.10.10.1 slave端IP:10.10.10.2

主從復(fù)制條件:

1.開啟主庫binlog功能
2.開啟主從庫server-id
3.確保主從配置文件my.cnf所有server-id不同
4.主庫建立同步的賬戶rep并且授權(quán)replication
5.在主庫鎖表flush tables with read lock; 并查看主庫上binlog文件及位置點
show master status\G;記錄下此binlog文件和位置點。
6.在master端新開mysql窗口導(dǎo)出全備,恢復(fù)備份數(shù)據(jù)到從庫,
7.登錄從庫,CHANGE MASTER TO…..
自動在從庫生成配置文件master.info
打開復(fù)制開關(guān)start slave;show slave status\G
8.解鎖,開放用戶寫入功能

操作過程:
主庫my.cnf配置文件件參數(shù):

vi /etc/my.cnf

server-id=1111 (和從庫不同即可)
log-bin=mysql-bin (開啟binlog)
binlog-do-db=數(shù)據(jù)庫名稱 (記錄指定庫的binlog,模式不同,記錄結(jié)果不同。)
binlog_format=mixed (設(shè)置binlog模式)
expire_logs_days = 7 (保留7天的binlog)

重啟master端mysql

centos 6:
/etc/init.d/mysql restart
centos 7:
systemctl restart mysql

從庫my.cnf配置文件件參數(shù):

vim /etc/my.cnf
server-id=2222 (從庫的ID,和主庫不沖突即可)

重啟slave端mysql

centos 6:
/etc/init.d/mysql restart
centos 7:
systemctl restart mysql

一.master 上操作:

主庫建立同步的賬戶rep并且授權(quán)replication;在主庫鎖表flush tables with read lock; 并查看主庫上binlog文件及位置點

show master status\G;記錄下此binlog文件和位置點。
mysql -uroot -p'數(shù)據(jù)庫密碼' -e "grant replication slave on *.* to rep@'10.10.10.2' identified by 'rep@back123'; flush privileges;flush tables with read lock; show master status;"

備份指定數(shù)據(jù)庫數(shù)據(jù)

mysqldump -uroot -p'數(shù)據(jù)庫密碼' -B 數(shù)據(jù)庫名稱 --single-transaction --events|gzip >/root/數(shù)據(jù)庫名稱_$(date +%F).sql.gz (輸出壓縮的sql文件)

mysqldump -uroot -p'數(shù)據(jù)庫密碼' -B 數(shù)據(jù)庫名稱 --single-transaction --events >/root/數(shù)據(jù)庫名稱_$(date +%F).sql (輸出sql文件)

傳輸數(shù)據(jù)到slave端從庫機(jī)器

scp -rp -P ssh服務(wù)端口 sql文件名稱 root@從庫IP:/root/

二.slave上操作:

登陸從庫:

gzip -d test.sql.gz; source /root/test.sql; 
stop slave;
reset slave all;

stop slave;
CHANGE MASTER TO
MASTER_HOST='主庫地址',
MASTER_PORT=3306, ------->端口
MASTER_USER='新建數(shù)據(jù)庫用戶',
MASTER_PASSWORD='新建用戶的密碼',
MASTER_LOG_FILE='日志文件名稱',
MASTER_LOG_POS=日志的Position值;

start slave;show slave status\G;

三.最后在master上執(zhí)行解鎖操作:

unlock tables;

到此處配置完成:

在master上創(chuàng)建測試表測試:

同步單個數(shù)據(jù)庫可以在主服務(wù)器或者從服務(wù)器上配置:

主服務(wù)器:
binlog-do-db=    僅同步指定的庫
binlog-ignore-db=    忽略指定的庫

從服務(wù)器:
replicate_do_db=   同步指定的庫
replicate_ignore_db=   忽略指定的庫
replicate_do_table=   同步指定的表
replicate_ignore_table=   忽略指定的表

replicate_wild_do_table= 如aming.%,支持通配符 
replicate_wild_ignore_table=

主從過程

主將更改操作記錄到binlog中
從將主的binlog事件(SQL語句)同步到本機(jī)并記錄在relaylog中
從根據(jù)relaylog里面的SQL語句按順序執(zhí)行

說明: 該過程有三個線程,主上有一個log dump線程,用來和從的i/o線程傳遞binlog;從上有兩個線程,其中i/o線程用來同步主的binlog并生成relaylog,另外一個SQL線程用來把relaylog里面的SQL語句落地。

應(yīng)用環(huán)境

備份重要數(shù)據(jù)
分擔(dān)主庫數(shù)據(jù)讀取壓力

名稱欄目:MySQL主從復(fù)制搭建
文章地址:http://muchs.cn/article38/ghgppp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站內(nèi)鏈、網(wǎng)站維護(hù)、網(wǎng)站制作商城網(wǎng)站、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)