mysql主从复制

复制如何工作:

  1. 主库开启二进制日志,在每次准备提交事务完成数据更新之前,主库将数据更新的事件记录到二进制日志中。
  2. 从库将主库的二进制日志复制到本地中继日志中。
  3. 从库在通过中继日志读取事件在从服务器执行。

整个过程会启动三个线程。

  1. 从库启动i/o线程与主库建立客户端连接
  2. 主库启动一个二进制转储线程读取主库上二进制日志的事件,从库io线程将接收到的事件记录至中继日志中
  3. 从库启动一个sql线程从中继日志中读取事件在从库执行

准备工作

主服务器:
mysql版本: 5.6
host: 从服务可以访问的ip
从服务器:
mysql版本: 5.6

配置步骤

  1. 在主库和从库创建账号
REPLICATION SLAVE, REPLICATION CLIENT  这是权限
语法:
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '用户名'@'主机' IDENTIFIED BY '密码'

示例:
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'liuzhiqiang'@'%' IDENTIFIED BY '123456'
  1. 主库在mysql的my.cnf 或者 my.ini 文件中增加或修改(主库开启二进制日志)
log-bin = mysql-bin
server_id = 10
  1. 使用 SHOW MASTER STATUS 命令查看日志文件名
fileposition
mysql-bin.000007689
  1. 从库在mysql的my.cnf 或者 my.ini 文件中增加或修改
log-bin = mysql-bin
server_id = 2
relay_log = /liuzhiqiang/mysql/mysql-relay_log
log_slave_update = 1
read_only = 1
  1. 从库连接主库(从库执行)
CHANGE MASTER TO MASTER_HOST = '主库ip',
MASTER_USER='liuzhiqiang',
MASTER_PASSWORD='lzq199528',
MASTER_LOG_FILE='mysql-bin.000007',
MASTER_LOG_POS=0
  1. 开始复制,执行下面语句
START SLAVE
  1. 如果执行报错的话
ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

先执行 reset slave 在执行 START SLAVE

之后再主库做的更改都会同步到备库

参考《高性能mysql》一书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值