Mysql主从复制

复制的基本原理

  1. slave会从master读取binlog来进行数据同步
  2. 复制过程三个步骤
    • master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件
    • slave将master的binary log events 拷贝到它的中继日志(relay log)
    • slave重做中继日志的时间,将改变应用到自己的数据库中,MySQL复制是异步的且串行化的

复制的基本原则

  1. 每个slave只有一个master
  2. 每个slave只能有一个唯一的服务器ID(类似只能有一个ip+端口)
  3. 一个master可以有多个slave

复制的最大问题

  1. 延时

一主一从常见配置

  1. mysql版本一致且后台以服务运行
  2. 主从配置都在[mysqlId]节点下,都是小写

window下my.ini(主机)

server-id=1  -- 1. 主服务器唯一ID(必须)
log-bin=mysql/data/mysqlbin -- 2. 启用二进制日志(必须),自己的路径+mysqlbin
log-err=mysql/data/mysqlerr -- 3. 启用错误日志(可选)
basedir = "mysql" -- 4.根目录(可选)
tmpdir = "mysql" --5.临时目录(可选)
datadir ="mysql/data" --6. 数据目录(可选)自己目录+data
read-only = 0 -- 7. 主机读写都可以
binlog-ignore-db = dbname -- 8.设置不要复制的数据库
binlog-do-db = dbname --9.设置需要复制的数据库,不设置默认全复制

Linux下my.cnf

server-id=2  -- 1. 主服务器唯一ID(必须)
log-bin=mysql-bin -- 2. 启用二进制日志(可选),自己的路径+mysqlbin
  1. 因修改过配置文件,需要重启服务
  2. 主机从机都关闭防火墙
    • Linux:service iptables stop
  3. 在Windows主机上建立账户并授权给slave
#给定ip可以登录user用户,密码password
GRANT REPLICATION SLAVE ON *.* TO 'USER'@'192.168.XX.XX' IDENTIFIED BY 'password';
#刷新
flush privileges;
#查看master状态,记录下File和Position的值
show master status;
  1. 在Linux从机上配置需要复制的主机
# 主机ID,mysqlbin的值是FIle,MASTER_LOG_POS是上述Position
CHANGE MASTER TO MASTER_HOST = '192.168.XX.XX',
MASTER_USER='USER',
MASTER_PASSWORD='password'
MASTER_LOG_FILE='mysqlbin.具体数字',MASTER_LOG_POS=具体值;

# 启动从服务器复制功能
start slave;

#下面两个参数都是Yes,说明主从配置成功
show slave status\G
(Slave_IO_Running:Yes + Slave_SQL_Running:Yes)

#停止从服务
stop slave
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值