MySQL 主从搭建

准备:

  • 确保MySQL大版本相同
  • 在主MySQL创建远程登录用户​​​​​


1. 配置主库

# 1. 在主库开启配置   然后重启主库
[mysqld]
log-bin=/data/mysql/log/mysql-bin.log
server-id= 1

# 2. 查看主库状态
show master status

主库需要的信息:
MySQL 主从搭建实践_主键

2. 配置从库

# 1. 配置从库   然后重启从库

log-bin = mysql-bin
binlog-format = mixed
server-id = 158

replicate-do-db = 你要同步的数据库
relay-log = relay-bin
log-slave-updates = ON
# 忽略主键重复插入错误
slave-skip-errors = 1062
# 忽略修改了未存在数据
slave-skip-errors = 1032


# 2. 查看从库状态
show slave status

# 3. 设置连接主库
CHANGE MASTER TO
MASTER_HOST='主库ip',
MASTER_USER='主库可连接用户',
MASTER_PASSWORD='连接密码',
# 主库的File
MASTER_LOG_FILE='mysql-bin.000033',
# 主库的Position
MASTER_LOG_POS=477465;

# 4. 停止从库
stop slave

# 5. 开启从库
start slave

# 6. 查看从库状态 Last_Error 就是错误信息-注意这里
show slave status

MySQL 主从搭建实践_mysql_02

3.常见问题

  1. 主从GTID模式不一致


# 依次执行即可
set @@global.gtid_mode=OFF;
set @@global.gtid_mode=OFF_PERMISSIVE;
set @@global.gtid_mode=ON_PERMISSIVE;
set @@global.gtid_mode=ON;

  1. 1062错误, 是主插入从的时候, 从已经有这个主键了, 插入错误
    一般配置无效, 需要删除从库的主键, 然后stop->在sart从库


  1. Variable ‘gtid_mode’ can’t be set to the value of ON_ENFORCE_GTID_CONSISTEN

执行下面一句然后在依次执行1即可

set @@global.enforce_gtid_consistency = ON