MySQL 主从复制

本文详细介绍了MySQL主从复制的工作原理,包括master记录变化到二进制日志,slave复制日志并应用,以及设置主库和从库的步骤,涉及配置文件修改和用户权限授予。
摘要由CSDN通过智能技术生成

介绍

MySQL 主从复制是一个异步的 复制过程,底层是基于 MySQL 数据库自带的 二进制日志 功能。就是一台或多台 MySQL 数据库 (slave, 即 从库) 从另一台(master,即 主库) 进行日志的复制然后再解析日志并应用到自身,最终实现实现 从库 的数据和 主库 的数据保持一致。MySQL 主从复制 是 MySQL 数据库自带的功能,无需借助第三方工具

MySQL 复制分成三步

  • master 将改变记录到 二进制日志 (binary log)

  • slave 将 master 的 binary log 拷贝到 它的中继日志(relay log)

  • slave 重做中继日志中的事件,将改变应用到自己的数据库

image-20230401140730109

前提准备

这里至少需要两台服务器分别安装 MySQL 并且成功启动。也可以用 虚拟机,装好一个 克隆出一个作为 从机不过要改一下 IP 以及 hostname。

  1. master 将改变记录到 二进制 日志 binary log 中

    修改 MySQL 数据库的配置文件 vim /etc/my.cnf

    添加以下 代码

     log-bin=mysql-bin #启用二进制日志
     server-id=100 #id 作为服务器唯一标识,不重复即可
  2. 保存退出后 重启 MySQL 服务

    systemctl restart mysqld

  3. 我们需要在 master 下 创建一个 用户,给他授予权限,slave 才能通过 该用户来拷贝它记录的 日志文件。先登陆到 MySQL

    mysqld -uroot -p

  4. 创建一个用户叫作 cccs7,密码是 Root@C020611.,并给该用户授予权限

    MySQL8.x 下使用以下代码

     create user cccs7 identified by 'Root@C020611.';
     grant replication slave on *.* to cccs7;
  5. 查看主库状态

    show master status\G

    image-20230401162730518

    接下来 主库就不要操作了,一旦操作,记录位置就会发生变化,这个位置和文件名,一会配置从库时要用

  6. slave 将 master 的 binary log 拷贝到它的中继日志 relay log

    先修改 MySQL数据库的配置文件 vim /etc/my.cnf

    添加以下代码

    server-id=101

    保存退出后重启 MySQL 服务

    systemctl restart mysqld

  7. 再次登陆 MySQL,执行以下操作

     change master to master_host='填入master的ip',master_user='上面创建的用户',master_password='上面设置的',master_log_file='主库刚查的日志名称',master_log_pos=刚查的记录位置;
    1. 启动 slave

      start slave;

    2. 查看从库状态

      show slave status\G;

    3. 完事后,重启 MySQL服务

  8. 配置完之后,两个io 都为 yes 即可

    image-20230401163254027

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值