溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL中怎么配置互為主從

發(fā)布時間:2021-08-06 11:37:46 來源:億速云 閱讀:130 作者:Leah 欄目:數(shù)據(jù)庫

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)MySQL中怎么配置互為主從,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1)        A , B 兩臺 mysql 服務(wù)器
一、服務(wù)器參數(shù),編輯 /etc/my.cnf

[A 服務(wù)器 ]
server-id = 1
binlog-do-db = test
binlog-ignore-db = mysql
replicate-do-db = test
replicate-ignore-db = mysql
master-host     =   192.168.255.195
master-user     =   repl
master-password =   repl
master-port     =  3306
master-connect-retry = 10
sync-binlog = 1
log-bin=mysql-bin

[B 服務(wù)器 ]
server-id = 2
binlog-do-db = test
binlog-ignore-db = mysql
replicate-do-db = test
replicate-ignore-db = mysql
master-host     =   192.168.255.194
master-user     =   repl
master-password =   repl
master-port     =  3306
master-connect-retry = 10
sync-binlog = 1
log-bin=mysql-bin
 
2)        在 A 和 B 上進行數(shù)據(jù)庫操作
A/B: Slave stop;
A/B: Reset master;
A: grant replication slave on *.* to  identified by 'repl';
B: grant replication slave on *.* to  identified by 'repl';
A/B: show master status;
A: change master to master_host='192.168.255.194',master_user='repl',master_password='repl',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=98;(log 根據(jù) master status)
B:
change master to master_host='192.168.255.195',master_user='repl',master_password='repl',master_port=3306,master_log_file='mysql-bin.000006',master_log_pos=98; (log 根據(jù) master status)
A/B: slave start;
A/B: show slave status\G;( 查看同步狀態(tài) )
看到如下狀態(tài)就表示同步成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
 
3)        測試數(shù)據(jù)庫同步,在 A 的 test 庫里增加表,在 B 的 test 庫里刪除表
Use test ;
A:Create table username (id int(15));
查看 B 中是否有 username 這個表
B: drop table username
查看 A 中是否已經(jīng)刪除 usernam 這個表
A/B : show slave status\G;( 再次查看同步狀態(tài),如果沒問題就表示成功 )
 
4)        互為同步配置實例
1. A B 互為主從同步 test, 不同步 mysql :
兩個數(shù)據(jù)庫配置中均設(shè)置: binlog-do-db=test, binlog-ignore-db=mysql , replicate-do-db=test , replicate-ignore-db=mysql
2. A B 互為主從只同步 test ,不同步其他數(shù)據(jù)庫,新創(chuàng)建的也不會同步
兩個數(shù)據(jù)庫配置中均設(shè)置: binlog-do-db=test , replicate-do-db=test
3. A B 互為主從不同步 mysql, 同步其他數(shù)據(jù)庫,譬如創(chuàng)建的新數(shù)據(jù)庫也會同步
兩個數(shù)據(jù)庫配置中均設(shè)置: binlog-ignore-db=mysql , replicate-ignore-db=mysql
4. A B 互為主從同步所有數(shù)據(jù)庫,包括新建的數(shù)據(jù)庫
兩個數(shù)據(jù)庫配置中均不設(shè)置上述四項
 
5) 實現(xiàn)自動同步的 shell 腳本
1.        增加 super 和 replication client on 權(quán)限
grant super  on *.* to  identified by 'repl';
grant replication client on *.* to  identified by 'repl';
 
2.       自動同步腳本 autosync.sh
#!/bin/bash
while true
do
status=`/usr/bin/ -uroot -e "show slave status\G;"|grep Slave_SQL_Running|cut -f2 -d":"|sed 's/ //'`
if [ $status != "Yes" ]
then
A=`/usr/bin/mysql -urepl -prepl -h292.168.255.194 -e "show master status"|grep mysql-bin|awk '{print $2}'`
/usr/bin/mysql -uroot -e "slave stop"
/usr/bin/mysql -uroot -e "change master to master_host='192.168.255.194',master_user='repl',master_password='repl',master_port=3306,
master_log_file='mysql-bin.000001',master_log_pos=$A"
/usr/bin/mysql -uroot -e "slave start"
fi
sleep 10
done
 
3.       后臺執(zhí)行
nohup ./autosync.sh >/dev/null 2>&1 &

上述就是小編為大家分享的MySQL中怎么配置互為主從了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI