配置mysql双主

该文详细介绍了如何配置两台MySQL服务器实现双主同步,包括修改my.cnf配置文件,设置服务器标识,开启二进制日志,配置主从账号及授权,以及处理可能出现的错误情况,如数据不一致和SOURCE_AUTO_POSITION错误。
摘要由CSDN通过智能技术生成

配置mysql双主

准备两台主机,装好mysql,root能正常登录。
配置mysql方案:让主机1和主机2互为主从

一、主机1配置

1.配置my.cnf

 vim /etc/my.cnf

# 配置服务器标识
server-id = 1

# 开启二进制日志记录
log-bin = mysql-bin
binlog-format = ROW

# 配置复制过滤规则(可选)
replicate-ignore-db = mysql
replicate-ignore-db = performance_schema
replicate-ignore-db = sys

# 保存并关闭   :wq

2.重启mysql

systemctl restart mysqld

3.登录MySQL,配置主从账号并授权

mysql -u root -p
#输入密码登录

CREATE USER '账号'@'主机2ip' IDENTIFIED BY '密码';
GRANT REPLICATION SLAVE ON *.* TO '账号'@'主机2ip';
FLUSH PRIVILEGES;

# 获取二进制日志信息,记录下主机1上的 File 值和Position 值
SHOW MASTER STATUS;

二、主机2配置

1.配置my.cnf

vim /etc/my.cnf

# 配置服务器标识
server-id = 2

# 开启二进制日志记录
log-bin = mysql-bin
binlog-format = ROW

# 配置复制过滤规则(可选)
replicate-ignore-db = mysql
replicate-ignore-db = performance_schema
replicate-ignore-db = sys

2.重启mysql

systemctl restart mysqld

3.登录主机2mysql并配置成主机1的从服务器

 CHANGE MASTER TO
  MASTER_HOST = '主机1ip',
  MASTER_PORT = 3306,
  MASTER_SSL = 1,
  MASTER_USER = '在主机1配的主从账号',
  MASTER_PASSWORD = '在主机1配的主从账号密码',
  MASTER_LOG_FILE = '主机1上的 File 值',
  MASTER_LOG_POS = 主机1上的 Position 值;

 # 启动从服务器并查看复制状态
 START SLAVE;
 SHOW SLAVE STATUS\G
 #Slave_IO_Running 和 Slave_SQL_Running 值都为 'Yes',表明复制已成功启动

4.在主机2配置主从账号并授权

CREATE USER '账号'@'主机1ip' IDENTIFIED BY '密码';
GRANT REPLICATION SLAVE ON *.* TO '账号'@'主机1ip';
FLUSH PRIVILEGES;

# 获取二进制日志信息,记录下主机2上的 File 值和Position 值
SHOW MASTER STATUS;

三、主机1配置

1.登录主机1mysql并配置成主机2的从服务器

 CHANGE MASTER TO
  MASTER_HOST = '主机2ip',
  MASTER_PORT = 3306,
  MASTER_SSL = 1,
  MASTER_USER = '在主机2配的主从账号',
  MASTER_PASSWORD = '在主机2配的主从账号密码',
  MASTER_LOG_FILE = '主机2上的 File 值',
  MASTER_LOG_POS = 主机2上的 Position 值;

 # 启动从服务器并查看复制状态
 START SLAVE;
 SHOW SLAVE STATUS\G
 #Slave_IO_Running 和 Slave_SQL_Running 值都为 'Yes',表明复制已成功启动

双主已配置完,请自行测试。

四、问题整理

1.SHOW SLAVE STATUS\G发现报错:

tailf /var/log/mysqld.log

一般都是主从初始数据不一致导致的,比如主库要删除一条数据,但从库没有这条数据,或者,主库比从库多了一个库/表等。这时可以查mysqld.log找到出问题的库表。处理好后重启即可。

2.报错SOURCE_AUTO_POSITION is active

change master to master_auto_position=0;

执行sql关闭SOURCE_AUTO_POSITION就好。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值