Mysql相互复制(互为主从)详细配置步骤

前言

环境:Centos7
数据库:Mysql5.7
库1地址:10.8.161.9
库2地址:10.8.161.18



1. 设置数据库的配置文件
库1:

vim /etc/my.cnf

[mysql] 下添加如下
server-id=1 #任意自然数n,只要保证两台MySQL主机不重复就可以
log_bin=master-bin #开启二进制日志
auto_increment_increment=2 #步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_offset=1 #起始值。一般填第n台主MySQL。此时为第一台主MySQL
binlog-ignore=mysql #忽略mysql库
binlog-ignore=information_schema #忽略information_schema库
replicate-do-db=test #要同步的数据库,默认所有库
库2

vim /etc/my.cnf

[mysqld]下添加如下
server-id=2 #任意自然数n,只要保证两台MySQL主机不重复就可以
log_bin=master-bin #开启二进制日志
auto_increment_increment=2 #步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_offset=2 #起始值。一般填第n台主MySQL。此时为第一台主MySQL
binlog-ignore=mysql #忽略mysql库
binlog-ignore=information_schema #忽略information_schema库
replicate-do-db=test #要同步的数据库,默认所有库
2. 进入数据库创建从账号
库1:
进入数据库创建
mysql > grant replication slave on *.*  to  'test(#用户名)'@'10.8.161.18(#指定库2的地址访问)'  identified by 'aA123.com(#密码)';
mysql > exit
systemctl restart mysqld    # 重启数据库 (目的:刷新新创的用户、刷新刚刚的配置文件,例如开启了日志文件)
库2:
进入数据库创建
mysql > grant replication slave on *.*  to  'test(#用户名)'@'10.8.161.9(#指定库1的地址访问)'  identified by 'aA123.com(#密码)';
mysql > exit
systemctl restart mysqld    # 重启数据库 (目的:刷新新创的用户、刷新刚刚的配置文件,例如开启了日志文件)
3. 查看生成的binlog日志,记录下来日志名字和起始位置。
库1:
进入数据库
mysql> show master status\G

在这里插入图片描述

库2:
进入数据库
mysql> show master status\G

在这里插入图片描述

4. 进入数据库进行从读设置,指定要读的主服务库的地址、用户、密码、日志等
库1:
mysql> \e
CHANGE MASTER TO
MASTER_HOST='10.8.161.18',    # 指定库2的地址
MASTER_USER='tese',           # 指定库2创建的用户名  
MASTER_PASSWORD='aA123com',   # 指定库2创建的密码
MASTER_LOG_FILE='mysql-bin.000002',    # 指定库2的日志文件名
MASTER_LOG_POS=301;                    # 指定库2的日志起始位置307
    -> ;

库2:
mysql> \e
CHANGE MASTER TO
MASTER_HOST='10.8.161.9',     # 指定库1的地址
MASTER_USER='tese',           # 指定库1创建的用户名  
MASTER_PASSWORD='aA123com',   # 指定库1创建的密码
MASTER_LOG_FILE='mysql-bin.000002',    # 指定库1的日志文件名
MASTER_LOG_POS=321;                    # 指定库1的321
    -> ;
5. 启动复制,并查看。
库1:
mysql >  start slave;    #启动
mysql > show slave status\G     #查看

在这里插入图片描述

库2:
mysql >  start slave;    #启动
mysql > show slave status\G     #查看

在这里插入图片描述

======================================================================================================================================================================================================================================================================================================
辛苦浏览观看,如果对你有帮助,请顺手点个赞吧 (σ゚∀゚)σ…:*☆

  • 22
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
MySQL 8支持多种主从复制拓扑结构,如单主从、双主互为主从、环形拓扑等。以下是实现双主互为主从步骤: 1. 安装MySQL 8服务器 在两台服务器上分别安装MySQL 8服务器,并确保服务器版本一致。 2. 配置主服务器 在其中一台服务器上配置主服务器,步骤如下: - 修改MySQL配置文件my.cnf,增加以下内容: ``` [mysqld] server-id=1 log-bin=mysql-bin binlog-do-db=test ``` 其中,server-id为服务器唯一标识,必须在不同服务器上设置不同的值;log-bin表示启用二进制日志;binlog-do-db表示只记录指定的数据库操作。 - 重启MySQL服务。 - 创建用于主从复制的用户并授权。 ``` CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; ``` 其中,repl为复制用户,password为密码。 - 查看主服务器状态并记录以下信息: ``` SHOW MASTER STATUS; ``` 记录File和Position字段的值,用于配置从服务器。 3. 配置从服务器 在另一台服务器上配置从服务器,步骤如下: - 修改MySQL配置文件my.cnf,增加以下内容: ``` [mysqld] server-id=2 log-bin=mysql-bin binlog-do-db=test ``` 其中,server-id为服务器唯一标识,必须在不同服务器上设置不同的值;log-bin表示启用二进制日志;binlog-do-db表示只记录指定的数据库操作。 - 重启MySQL服务。 - 启动主从复制并指定主服务器信息。 ``` CHANGE MASTER TO MASTER_HOST='主服务器IP地址', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='上一步中记录的File字段值', MASTER_LOG_POS=上一步中记录的Position字段值; START SLAVE; ``` 其中,主服务器IP地址为主服务器的IP地址,repl和password为主服务器的复制用户和密码,MASTER_LOG_FILE和MASTER_LOG_POS为上一步中记录的值。 - 查看从服务器状态并确保复制已启动。 ``` SHOW SLAVE STATUS\G ``` 如果复制已启动,Slave_IO_Running和Slave_SQL_Running字段的值将为Yes。 4. 配置双主互为主从 以上步骤实现了单向主从复制,要实现双向主从复制,需要在另一台服务器上重复以上步骤,并将主从角色互换,即将原来的从服务器配置为主服务器,原来的主服务器配置为从服务器。在配置时需要注意以下几点: - 在配置第二个主服务器时,server-id必须设置为不同于第一个主服务器的值。 - 在配置第二个从服务器时,需要将MASTER_HOST设置为第二个主服务器的IP地址。 - 在主从切换时,需要先停止原来的复制,再将两个服务器的数据同步,最后启动新的复制。 双主互为主从复制可以实现数据的双向同步,但也存在数据冲突和数据丢失的风险,需要谨慎使用。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

king config

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值