mysql ab复制_实现mysql的ab复制(a-b-b,a-b-c)
實(shí)驗(yàn)環(huán)境準(zhǔn)備:
三臺(tái)虛擬機(jī),IP分別為master: 192.168.2.1 ? slave:192.168.2.2 ? slave1:192.168.2.3
將192.168.2.1的主機(jī)做為mysql的主,另外兩臺(tái)做為輔(也可說是從)
第一步:配置好yum ?,執(zhí)行yum install mysql mysql-server -y安裝mysql(三臺(tái)都要裝)
第二步:master上編輯mysql的配置文件
1#vim /etc/my.cnf ? 增加如下幾行保存退出
server_id = 1
log-bin=binlog
log-bin-index=binlog.index
第三步:編輯slave上的mysql配置文件
2#vim /etc/my.cnf ?增加如下幾行保存退出
server_id = 2
relay_log = /var/lib/mysql/mysql-relay-bin
relay_log_index=/var/lib/mysql/mysql-relay-bin.index
第四步:重啟master、slave上的mysqld服務(wù)
service mysqld restart
第五步:在master上為slave添加一個(gè)用戶
mysql> GRANT replication slave ON *.* TO 'zx'@'%' identified by '123';
mysql> flush privileges;
第六步:在slave上
2#cd /var/lib/mysql
2#rm -fr *
2#service mysqld restart
第七步:在master上備份mysql數(shù)據(jù)并拷貝到slave上
1#mysqldump -A -x > /tmp/full.sql
第八步:在slave上還原數(shù)據(jù)
mysql < /tmp/full.sql
第九步:查看master數(shù)據(jù)庫的運(yùn)行狀態(tài)
master:
mysql> flush tables with read lock;
mysql> show master status;
+---------------+----------+--------------+------------------+
| File ? ? ? ? ?| Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| binlog.000003 | ? ? ?295 | ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ?|
mysql>unlock tables;
第十步:在slave上執(zhí)行一下命令(注意:master_host指到master的IP,master_user是master中為slave創(chuàng)建的用戶,master_log_file是第九步查詢出來的File名,master_log_pos是第九步查詢出來的Position值)
mysql> change master to master_host='192.168.2.1, master_port=3306, master_user='zx', master_password='123', master_log_file='binlog.000003',master_log_pos=295;
mysql> start slave;
查看slave的運(yùn)行狀態(tài):show slave status \G;
如果下面兩個(gè)值為YES配置完成
Slave_IO_Running: Yes ?(主機(jī)之間的連通性)
Slave_SQL_Running: Yes(SQL運(yùn)行狀態(tài))
以上完成了ab復(fù)制!
如果再填一臺(tái)主機(jī)slave1,做成a-b-b結(jié)構(gòu),又該怎么做?
其實(shí)很簡(jiǎn)單:安裝slave同樣的步驟配置slave1,有一個(gè)地方需要修改,就是server_id改成3即可!
如果要做成a-b-c結(jié)構(gòu)呢?b是c的主,a是b的主!
其實(shí)這個(gè)也不難:
1、在slave這臺(tái)機(jī)器的mysql配置文件中添加如下兩行
log-bin=binlog
log-slave-updates(開啟slave日志更新功能)
2、在slave的mysql數(shù)據(jù)庫中為slave1創(chuàng)建用戶
mysql> GRANT replication slave ON *.* TO 'zx1'@'%' identified by '123';
mysql> flush privileges;
3、slave1中配置文件增加為
server_id = 3
relay_log = /var/lib/mysql/mysql-relay-bin
relay_log_index=/var/lib/mysql/mysql-relay-bin.index
4、下面操作和主從復(fù)制一樣!
slave1:
3#cd /var/lib/myslq
3#rm -fr *
3#service mysqld restart
slave:
3#mysqldump -A -x > /tmp/full.sql(備份slave所有數(shù)據(jù))
3#scp /tmp/full.sql root@192.168.2.3:/tmp(將數(shù)據(jù)拷貝在slave1)
mysql> flush tables with read lock;
mysql> show master status;
+---------------+----------+--------------+------------------+
| File ? ? ? ? ?| Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| binlog.000002 | ? ? ?169 | ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ?|
slave1:
mysql < /tmp/full.sql(還原數(shù)據(jù))
mysql> change master to master_host='192.168.2.2, master_port=3306, master_user='zx1', master_password='123', master_log_file='binlog.000002',master_log_pos=169;
mysql> start slave;
查看slave的運(yùn)行狀態(tài):show slave status \G;
如果下面兩個(gè)值為YES配置完成
Slave_IO_Running: Yes ?(主機(jī)之間的連通性)
Slave_SQL_Running: Yes(SQL運(yùn)行狀態(tài))
這里已經(jīng)完成了a-b-c復(fù)制!
mysql>unlock tables;
交流群:374506612
總結(jié)
以上是生活随笔為你收集整理的mysql ab复制_实现mysql的ab复制(a-b-b,a-b-c)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql+提升更新语句效率_MySQL
- 下一篇: mysql 取消主从复制_MySQL:第