Mysql-主从复制架构的扩展主主-多从
Posted shark_西瓜甜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于Mysql-主从复制架构的扩展主主-多从的主要内容,如果未能解决你的问题,请参考以下文章