mysql 主从复制

主从复制的原理

在这里插入图片描述

  • 主服务器
    • 开启二进制文件,记录操作
    • 配置 唯一的 serverID
    • 获得master 二进制文件位置
    • 提供一个让 从服务器使用的,进行通信的账号
  • 从服务器
    • 配置 唯一的 serverID
    • 用master 提供的账号访问二进制文件

首先master 服务器 将自己的操作数据库事件记录到二进制文件中,然后提供一个账号给从数据库,slave 从服务器会对这个二进制文件进行监听,一旦有改变,就用master提供的账号,将时间复制到自己的中继日志,然后执行操作。这个过程master 会提供一个专门的IO线程来操作,所以不会对正常的使用造成影响。

安装多个数据库

我的是在windows的,所有安装了3个服务

一 master 配置
1. 修改 my.ini 添加master
#=========主从复制关键配置=====================
server_id=1 #主库和从库需要不一致,配一个唯一的ID编号,1至32。 手动设定
log-bin=master-bin #二进制文件存放路径,存放在根目录data
#binlog-do-db=test #需要复制的库,多个库用逗号隔开,如果此项不配置所有主库都参与复制
#binlog-ignore-db=mysql #不需要复制的库,和上项同理
#=========主从复制关键配置=====================

保存,重启服务。net start mysql

  • 登录查看状态
  • show master status
    file 就是保存日志的二进制文件,position
    107代表操作数据库的事件位置标记。在这里插入图片描述
2. 创建用于给从库使用的账号
  • create user copyuser; #用户名就是 copyuser
  • grant replication slave on . to ‘copyuser’@'127.0.0.1’identified by ‘123456’; # 分配权益
  • flush privileges; #刷新权限
    在这里插入图片描述
二 slave 从服务器配置
1. my.ini修改
#========主从复制关键配置======================
server_id=2 #主库和从库需要不一致
#binlog-do-db=test #和主库说明一致
#binlog-ignore-db=mysql #和主库说明一致
#========主从复制关键配置======================
2. 执行同步语句
  • change master to master_host=‘127.0.0.1’,master_port=3306,master_user=‘copyuser’,master_password=‘123456’,master_log_file=‘master-bin.000001’,master_log_pos=0;
3. 启动同步进程
  • start slave # 开始同步
4. 查看同步情况
  • show slave status\G
    在这里插入图片描述

可以看到: Slave_SQL_Running : NO
还有last error,写明了具体的错误。
这是没有成功的,因为执行过程报错了,
执行命令跳过这个错误继续执行:

  • set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

下面就正常了
在这里插入图片描述
按照相同步骤,配置第二个从库,省略。。。。。

三 验证

登录sqlyong
可以看到已经同步了
略。。。。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值