MySql 8.0主从复制及常见问题解决方法

本文详细讲解了MySQL主从复制的配置,包括server_id、binlog设置、主从切换及常见问题解决方案。涵盖了如何设置server_id,配置日志同步,以及修复数据不一致的方法,适合数据库运维人员参考。
摘要由CSDN通过智能技术生成
  • 主库配置:

[mysqld]

#设置服务器id,为1表示主服务器,实例唯一ID,不能和canal的slaveId重复
server_id=1

#启动MySQ二进制日志系统
log-bin=mysql-bin

#选择row模式
binlog-format=ROW

#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-do-db=test

#不同步mysql系统数据库
binlog-ignore-db=mysql
  • 从库配置

[mysqld]中配置如下

#实例唯一ID,不能和canal的slaveId重复,表示为从数据库
server-id=2

#启动MySQL二进制日志系统
log-bin=mysql-bin

#选择row模式
binlog-format=ROW

#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
replicate-do-db=test

#不同步mysql系统数据库
replicate-ignore-db=mysql
  • 主库执行

show master status;

记住position这个值从库中配置需要使用

  • 从库执行

CHANGE MASTER TO
MASTER_HOST='192.168.32.200',
MASTER_PORT=50000,
MASTER_USER='root',
MASTER_PASSWORD='root',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=156
  • 查看状态

# 查看主库的运行状态
SHOW MASTER STATUS

# 从库开始同步
START SLAVE;

# 查看从库的运行状态
SHOW SLAVE STATUS

# 查询当前节点的server_id
show variables like '%server_id%';

主主复制类推,很简单

  • 常见问题

主从同步报错Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

解决:删除mysql的data目录下的auto.cnf重启mysql,主要是复制的虚拟机server_uuid相同了

主从数据不一致修复方法(在从库执行)

# 停用现有的slave
stop slave;
# 设置错误跳过1次
set global sql_slave_skip_counter =1;
# 启动slave同步
start slave;
# 查看当前slave状态
show slave status

  • 注意事项

每个数据库节点的 dataPath/auto.cnf 中自动生成uuid必须全局唯一

每个数据库节点的 /etc/my.cnf 中的server_id全局唯一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值