签到成功

知道了

CNDBA社区CNDBA社区

MySQL 5.7 主主 双向复制 环境搭建手册

2022-05-24 16:00 1637 0 原创 MySQL
作者: dave

MySQL单节点的安装直接参考之前的博客:http://www.cndba.cn/cndba/dave/article/108022

Redhat 7.7 平台 MySQL 5.7.33 安装手册(Tar包)
https://www.cndba.cn/dave/article/4509

本片主要介绍下主主复制的搭建过程。 http://www.cndba.cn/cndba/dave/article/108022

MySQL主主服务器的思路和主从差不多,本质就是让多台MySQL服务器间互为主从。

http://www.cndba.cn/cndba/dave/article/108022
http://www.cndba.cn/cndba/dave/article/108022

1 当前环境描述


主1库IP:172.31.185.120
主2库IP:172.31.185.165

http://www.cndba.cn/cndba/dave/article/108022

[mysql@www.cndba.cn_3 ~]$ cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
[mysql@www.cndba.cn_3 ~]$

[mysql@www.cndba.cn_1 ~]$ mysql -uroot -proot
mysql> select version();
+------------+
| version()  |
+------------+
| 5.7.33-log |
+------------+
1 row in set (0.00 sec)

mysql>

2 创建同步用户


在主服务器上为从服务器建立一个连接帐户,该帐户必须授予REPLICAITON SLAVE权限。
这里2个服务器互为主从,所以都要分别建立一个同步用户。

[mysql@www.cndba.cn_1 ~]$ mysql -uroot -proot
mysql> grant replication slave, super, replication client on *.* to 'repl'@'%' identified by 'repl';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>

3 修改mysql配置文件


在2个节点的配置文件中添加如下内容:

主库1:
[mysqld]  
server-id = 1  
log-bin=binlog 
log_slave_updates=1 
sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2

主库2:
[mysqld]  
server-id = 2
log-bin = binlog
sync_binlog=1
auto_increment_offset=2
auto_increment_increment=2

然后分别重启2个mysql服务:

[root@mongodb1 ~]# systemctl restart mysql
[root@mongodb2 log]# systemctl restart mysql

4 分别在查看2个主节点状态


主库A:http://www.cndba.cn/cndba/dave/article/108022http://www.cndba.cn/cndba/dave/article/108022

http://www.cndba.cn/cndba/dave/article/108022
http://www.cndba.cn/cndba/dave/article/108022

[mysql@www.cndba.cn_1 ~]$ mysql -uroot -proot
mysql> show master status /G;
*************************** 1. row ***************************
             File: mysql-bin.000003
         Position: 194
     Binlog_Do_DB:
 Binlog_Ignore_DB:
Executed_Gtid_Set: c9aae1bf-db08-11ec-ab9b-fa163e7035c7:1-4
1 row in set (0.00 sec)

ERROR:
No query specified

mysql>

主库B:http://www.cndba.cn/cndba/dave/article/108022

[mysql@www.cndba.cn_2 ~]$ mysql -uroot -proot

mysql> show master status/G
*************************** 1. row ***************************
             File: mysql-bin.000003
         Position: 194
     Binlog_Do_DB:
 Binlog_Ignore_DB:
Executed_Gtid_Set: c0f6ee45-db08-11ec-9569-fa163e2997dc:1-4
1 row in set (0.02 sec)

mysql>

5 指定同步位置并启动slave 线程


分别在服务器A、B上用change master语句指定同步位置

--主库A:
mysql> change master to master_host='172.31.185.165', master_user='repl', master_password='repl', master_log_file='mysql-bin.000003', master_log_pos=194;
Query OK, 0 rows affected, 2 warnings (0.02 sec)
mysql> start slave;
Query OK, 0 rows affected (0.10 sec)

--主库B:
mysql> change master to master_host='172.31.185.120', master_user='repl', master_password='repl', master_log_file='mysql-bin.000003', master_log_pos=194;
Query OK, 0 rows affected, 2 warnings (0.05 sec)
mysql> start slave;
Query OK, 0 rows affected (0.10 sec)

6 分别查看从服务器状态


mysql> show slave status/G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 172.31.185.165
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 194
               Relay_Log_File: relay.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

mysql> show slave status /G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 172.31.185.120
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 194
               Relay_Log_File: relay.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

查看以上两项的值,均为Yes则表示状态正常。

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

7 测试主主同步


主库1:
mysql> create database cndba;
Query OK, 1 row affected (0.02 sec)

mysql> use cndba;
Database changed
mysql> create table dave(id int,name varchar(100));
Query OK, 0 rows affected (0.11 sec)

mysql> insert into dave value(1,'www.cndba.cn');
Query OK, 1 row affected (0.05 sec)

mysql>


主库2:
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cndba              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.02 sec)

mysql> use cndba;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-----------------+
| Tables_in_cndba |
+-----------------+
| dave            |
+-----------------+
1 row in set (0.00 sec)

mysql> select * from dave;
+------+--------------+
| id   | name         |
+------+--------------+
|    1 | www.cndba.cn |
+------+--------------+
1 row in set (0.01 sec)

mysql> insert into dave value(2,'www.cndba.cn');
Query OK, 1 row affected (0.02 sec)

mysql>

主库1:
mysql> select * from dave;
+------+--------------+
| id   | name         |
+------+--------------+
|    1 | www.cndba.cn |
|    2 | www.cndba.cn |
+------+--------------+
2 rows in set (0.00 sec)

mysql>

双向同步正常。

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2261
    原创
  • 3
    翻译
  • 578
    转载
  • 191
    评论
  • 访问:8015385次
  • 积分:4346
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ