MySQL 8.0主从(Master-Slave)配置 双主 互为主从 实现


参考:https://blog.csdn.net/zyhlwzy/article/details/80569422

参考:https://blog.csdn.net/tanfengshang0872/article/details/121446436

自己实际操作踩坑:

1.添加用户那里指定IP 可以不指定 使用 ‘%’ 代替 表示允许所有主机连接

2. 更改 query_cache_type 配置项导致重启mysql失败 具体原因未研究

3.注意指定主服务器sql语句的准确性

CHANGE MASTER TO MASTER_HOST='192.168.51.115',
MASTER_USER='master',
MASTER_PASSWORD='Root_2019',
MASTER_LOG_FILE='mysql-bin.000008',
MASTER_LOG_POS=156;
CHANGE MASTER TO MASTER_HOST='192.168.51.115', # 主mysql服务器ip
MASTER_USER='master', # 主mysql创建用于主从同步的用户
MASTER_LOG_FILE='mysql-bin.000008', # 主mysql 使用 show master status; 语句查看
MASTER_LOG_POS=156; # 主mysql 使用 show master status; 语句查看

设置双主互为主从:
CREATE USER 'slave'@'%' IDENTIFIED BY 'XM_zm2019';

# mysql8.0 不能加identified by
grant replication slave,replication client on *.* to slave@'%';

FLUSH PRIVILEGES;

show master status\G;

# 指定主节点同步
change master to master_host='192.168.51.116',master_user='slave',master_password='XM_zm2019',master_port=3306,MASTER_LOG_FILE='binlog.000012', MASTER_LOG_POS=156;

start slave;

# 启动slave 报错时
reset slave;

#  show slave status\G; 查看状态 报错'Could not find first log file name in binary log index file' 刷新主库二进制文件,命令:flush logs; 

#  show slave status\G; 查看状态 第一行为 Slave_IO_State: Waiting for master to send event 代表从节点配置成功

# 互为主节点my.cnf配置
# 服务器1
#设置主从相关配置====start
log-bin=mysql-bin
server-id=1111

# 需要同步的数据库名称
binlog-do-db=shop_ds_master
binlog-do-db=shop_ds_master1
# 不需要同步的数据库
binlog-ignore-db=information_schema
binlog-ignore-db=performation_schema
binlog-ignore-db=sys
# 每次执行写入就与磁盘同步
sync-binlog=1


relay-log=mysql-relay-bin         #开启中继日志
log_slave_updates = on            #从服务器将时间记录到二进制日志中
auto_increment_increment=2        #自动增长的步长
auto_increment_offset=1           #自动增长的起始数值
#设置主从相关配置====end

# 服务器2
#设置主从相关配置====start
log-bin=mysql-bin
server-id=2222
# 需要同步的数据库名称
binlog-do-db=shop_ds_master
binlog-do-db=shop_ds_master1

auto_increment_increment=2
auto_increment_offset=2
#设置主从相关配置====end