首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Mysql8实现主从复制

Mysql8实现主从复制

作者头像
itze
发布于 2022-10-31 16:12:47
发布于 2022-10-31 16:12:47
9520
举报
文章被收录于专栏:IT者IT者

环境

  • 操作系统:CentOS 7
  • Mysql版本:8.0
  • MysqlServer_1:M1(主)
  • MysqlServer_2:M2(从)

实现

  1. 修改M1配置文件:vim /etc/my.cnf (my.cnf路径位置根据自己实际路径更改)
代码语言:javascript
复制
#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库
binlog-do-db=需要复制的主数据库名字
#设置logbin格式
binlog_format=STATEMENT
  1. 修改M2配置文件:vim /etc/my.cnf (my.cnf路径位置根据自己实际路径更改)
代码语言:javascript
复制
#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay
  1. 依次重启主机M1、从机M2服务,注意是指重启Mysql服务不是机器重启
  2. 在主机上建立帐户slave
代码语言:javascript
复制
create user 'slave'@'%' identified by '123456';
  1. 授权,这里只授予SLAVE权限,当然也可以授所有权限
代码语言:javascript
复制
grant REPLICATION SLAVE on *.* to 'slave'@'%';
  1. 在M1主机MySQL里执行命令,查询master的状态
代码语言:javascript
复制
show master status;

记录下File和Position的值 注意:执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化

  1. 在M2从机上配置需要复制的主机,修改完毕之后再M2服务上执行该SQL
代码语言:javascript
复制
CHANGE MASTER TO MASTER_HOST='主机的IP地址',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.具体数字',MASTER_LOG_POS=具体值;
  1. 启动从服务器复制功能
代码语言:javascript
复制
start slave;
  1. 查看从服务器状态
代码语言:javascript
复制
show slave status\G;

下面两个参数都是Yes,则说明主从配置成功! – Slave_IO_Running: Yes – Slave_SQL_Running: Yes 接下来就可以去M1主机新建库、建表等测试了,观察M2从机服务是否会跟着改变

如何停止从服务复制功能

代码语言:javascript
复制
stop slave;

如果需要重新配置,需要先停止,然后重置

代码语言:javascript
复制
stop slave;

重置

代码语言:javascript
复制
reset master;

注意事项

如果使用Mysql的主从复制,需要考虑的问题,比如如何持续保证数据一直问题,就比如一旦主从关系断开之后,再次建立主从,比如可以写脚本去监控Mysql服务等等

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月14日,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 环境
  • 实现
  • 注意事项
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档