mysql 主从复制 实例讲解

MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能。
  • 在本文中我们主要介绍 mysql 的主从复制,读写分离在以后的文章中会涉及到

实现MySQL主从复制需要进行的配置
  • 主服务器:
    • 开启二进制日志
    • 配置唯一的 server-id
    • 获得master二进制日志文件名及位置
    • 创建一个用于slave和master通信的用户账号
  • 从服务器:
    • 配置唯一的 server-id
    • 使用master分配的用户账号读取master二进制日志
    • 启用slave服务

  • 环境准备
    • 准备好两台云主机或者虚拟机
      • 我准备的为 京东云腾讯云 的两台主机 ,系统为centos 7.4
    • 主从数据库的版本最好可以一致
      • 本实例讲解中为 Mysql 5.7.22
    • 主从数据库的内容最好可以一致
      • 本次实例讲解中,Mysql 数据库都为空

  • 主数据库 master 配置

    • 修改 my.cnf 文件 在 [mysqld] 加上如下的配置
    [mysqld]
    log-bin=mysql-bin     #开启二进制日志
    server-id=1           #设置server-id
    character_set_server=utf8
    init_connect='SET NAMES utf8'
    • 重启 mysql 如果是yum安装可以使用 systemctl restart mysqld
    • 登陆Mysql,创建用于同步的用户账号
    CREATE USER 'repl'@'139.199.***.***' IDENTIFIED BY 'YourPassword9#';
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'139.199.***.***';
    FLUSH PRIVILEGES;
    139.199.***.***  这里填上自己从服务器的 ip 
    • 查看master状态,记录二进制文件名 mysql-bin.000001 和位置 2930
    mysql>  SHOW MASTER STATUS;
    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000001 |     2930 |              |                  |                   |
    +------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    

  • 从数据库 slave 设置

    • 修改 my.cnf 文件 在 [mysqld] 加上如下的配置
    [mysqld]
    server-id=2           #设置server-id
    character_set_server=utf8
    init_connect='SET NAMES utf8'
    • 重启 mysql 如果是yum安装可以使用 systemctl restart mysqld
    • 登陆Mysql,并执行同步SQL语句
    mysql> CHANGE MASTER TO
    ->     MASTER_HOST='116.196.***.***',             # 主服务器ip
    ->     MASTER_USER='repl',                        # 主服务器登陆名
    ->     MASTER_PASSWORD='YourPassword9#',          # 主服务器登陆密码
    ->     MASTER_LOG_FILE='mysql-bin.000001',        # 二进制文件的名称
    ->     MASTER_LOG_POS=2930;                       # 二进制文件的位置
    • 启动 slave 同步进程
    mysql> start slave;
    Query OK, 0 rows affected (0.00 sec)
    
    • 查看 slave 状态
    mysql> show slave status\G;
    如果以下两项都是 yes 就表示主从同步设置成功了
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    

参考博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值