MySQL : 主从同步

MySQL 数据库主从同步

主从介绍

  • MySQL主从又叫做Replication, AB复制.就是A主机与B主机做主从后,在A上写数据,另一台机器B也会跟着同步写入数据,保持实时同步.
  • MySQL主从是基于binlog实现,主必须开启binlog.
  • 主从步骤:
    1. 主 将操作记录到binlog
    2. 从将主的binlog同步到本机写在relaylog里.
    3. 从根据relaylog里面的sql语句按照顺序执行
      • 主上有一个log dump线程,用来和从的I/O线程传递binlog
      • 从上有两个线程,其中I/O线程用来同步主的binlog并升恒relaylog,另外一个sql线程来吧relaylog里面的sql语句按顺序执行

配置

前言

  1. 两台主机上的MySQL版本需要一致
  2. MySQL 都会有一个uuid,如果是复制或者同一个镜像的MySQL,uuid可能一致,需要修改
    • uuid 写在 auto.cnf 文件,一般路径在 /var/lib/mysql/auto.cnf,可以通过find / -name auto.cnf查找

主库配置

  1. 编辑mysql配置文件,一般是在 /etc/mysql/my.cnf, 可以通过ps -ef|grep mysql 查找MySQL服务信息
    log-bin=mysql-bin # 非必需
    server-id=1    # 必需,与从库 id 不能一致
    
  2. 创建用于同步数据的账户
    # 用户名repl , 从库ip 192....  密码:123456
    CREATE USER 'repl'@'192.168...' IDENTIFIED BY '123456';
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192....';
    FLUSH PRIVILEGES;
    
  3. 查看bin-log 是否开启
    # 登录mysql
    mysql> show variables like 'log_bin%';
    
    在这里插入图片描述
  4. 查看 master状态,结果参数后面从库需要用到
    show master status;
    
    在这里插入图片描述

从库配置

  1. 修改master 相关参数
    # 登录mysql
    # 主库ip: 192... 用户: repl  密码:123456  都与主库上面创建的一致
    change master to master_host='192....', master_user='repl', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=514;
    
    
  2. 启动/停止 slave 服务
    # 登录MySQL
    start/stop slave;
    
  3. 查看从库状态
    # 登录MySQL
    show slave status\G;
    
    在这里插入图片描述
    显示yes ,表示配置成功
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章