MySQL主从复制架构的扩展主主+多从

在这里插入图片描述

一、配置文件

1. master1

log-bin=/var/log/mysql/mysql-bin
server-id=24

# 保证一致性的
innodb_flush_log_at_trx_commit=1
sync_binlog=1

# 服务器作为从的时候,将来自主服务器二进制日志的更新,也写入到自己的 binlog 中。
# 若果此服务器作为 slave 的同时也作为其他 slave 的 master 的情况下必须设置此参数
log-slave-updates=true

# 主服务上设置不记录到二进制日志的逻辑库名称,一行一个
binlog-ignore-db=mysql

# 应该在从服务器设置不需要进行复制的逻辑库名称,一行一个
replicate-ignore-db=mysql

# 自增列的其实数字
#auto-increment-offset = 1

# 自增列的每次自动增加的步长, 1,2,3,5
#auto-increment-increment = 2

创建二进制存放的目录,并授权

mkdir /var/log/mysql

chown mysql.mysql /var/log/mysql

2 . master 2

log-bin=/var/log/mysql/mysql-bin
server-id=190

# 保证一致性的
innodb_flush_log_at_trx_commit=1
sync_binlog=1

# 服务器作为从的时候,将来自主服务器二进制日志的更新,也写入到自己的 binlog 中。
# 若果此服务器作为 slave 的同时也作为其他 slave 的 master 的情况下必须设置此参数
log-slave-updates=true

# 主服务上设置不记录到二进制日志的逻辑库名称,一行一个
binlog-ignore-db=mysql

# 应该在从服务器设置不需要进行复制的逻辑库名称,一行一个
replicate-ignore-db=mysql

# 自增列的其实数字
#auto-increment-offset = 2

# 自增列的每次自动增加的步长, 2,4,6,8
#auto-increment-increment = 2


创建二进制存放的目录,并授权

mkdir /var/log/mysql

chown mysql.mysql /var/log/mysql

3. slave1

server-id=100

# 保证一致性的
innodb_flush_log_at_trx_commit=1
sync_binlog=1

# 应该在从服务器设置不需要进行复制的逻辑库名称,一行一个
replicate-ignore-db=mysql


4. slave2

server-id=114

# 保证一致性的
innodb_flush_log_at_trx_commit=1
sync_binlog=1

# 应该在从服务器设置不需要进行复制的逻辑库名称,一行一个
replicate-ignore-db=mysql


二、配置语句

1. master1

1.1 给 master2 授权

mster2 的 IP: 192.168.122.190

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.122.190' identified by 'QFedu123@';


1.2 获取自己当前的二进制日志名和位置

这个信息是给自己的 slave(此时,也就是 master2)使用的

mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |      711 |              | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)


2. master2

1.1 给 master1 授权

master1 的 IP: 192.168.122.24

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.122.24' identified by 'QFedu123@';

1.2 获取自己当前的二进制日志名和位置

这个信息是给自己的 slave(此时,也就是 master1)使用的

mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |      710 |              | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)


4 在 master1 上配置到 mater2 服务器的信息

mster2 的 IP: 192.168.122.190

mysql> change master to
    -> master_host='192.168.122.190',
    -> master_port=3306,
    -> master_user='repl',
    -> master_password='QFedu123@',
    -> master_log_file='mysql-bin.000002',
    -> master_log_pos=710;
Query OK, 0 rows affected, 2 warnings (0.13 sec)

mysql> start slave;
Query OK, 0 rows affected (0.03 sec)

mysql> show slave status\G

5 在 master2 上配置到 master1的连接信息

mster1 的 IP: 192.168.122.24


mysql> change master to
    -> master_host='192.168.122.24',
    -> master_port=3306,
    -> master_user='repl',
    -> master_password='QFedu123@',
    -> master_log_file='mysql-bin.000002',
    -> master_log_pos=711;
Query OK, 0 rows affected, 2 warnings (0.22 sec)

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G

6. slave1

6.1 在 master1 上给 slave1 授权

slave 1 的 IP: 192.168.122.100

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.122.100' identified by 'QFedu123@';
Query OK, 0 rows affected, 1 warning (0.01 sec)


6.2 配置 slave1 到 master1 的连接信息

master1 的 IP: 192.168.122.24

change master to
master_host='192.168.122.24',
master_port=3306,
master_user='repl',
master_password='QFedu123@',
master_log_file='mysql-bin.000002',
master_log_pos=711;

6.3 在 slave1 上启动 slave 并检查状态

mysql> start slave;
Query OK, 0 rows affected (0.03 sec)

mysql> show slave status\G

7. slave2

7.1 在 master2 上给 slave2 授权

slave 2 的 IP: 192.168.122.114

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.122.114' identified by 'QFedu123@';
Query OK, 0 rows affected, 1 warning (0.01 sec)

7.2 配置 slave2 到 master2 的连接信息

master2 的IP: 192.168.122.190

mysql> change master to
    -> master_host='192.168.122.190',
    -> master_port=3306,
    -> master_user='repl',
    -> master_password='QFedu123@',
    -> master_log_file='mysql-bin.000002',
    -> master_log_pos=710;
Query OK, 0 rows affected, 2 warnings (0.16 sec)

7.3 在 slave2 上启动 slave 并检查状态

mysql> start slave;
Query OK, 0 rows affected (0.03 sec)

mysql> show slave status\G

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值