码迷,mamicode.com
首页 > 数据库 > 详细

Mysql数据库的主从复制

时间:2018-07-05 18:26:35      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:数据   更新记录   5.7   添加   使用   详解   enforce   技术分享   mct   

  • Mysql主从复制作用原理
    1、在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。
    2、做数据的热备
    3、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。
    mysql主从复制是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致。
  • 主机 IP 主要软件
    主服务器 192.168.126.129 mysql-5.7.17、 ntp
    从服务器 192.168.126.130 mysql-5.7.17 、 ntp

    搭建Mysql主从复制

    • 主服务器
    • 建立时间同步环境

      # systemctl stop firewalld.service  //关闭防火墙
      # setenforce 0
      # yum -y install ntp (一般系统自带 没有的话安装)
      # vim /etc/ntp.conf    (添加下面2行)
        server 127.127.126.0                    //本地是时钟源//
        fudge 127.127.126.0 stratum 8          //设置时间层级为8(限制在15内)//
      # systemctl restart ntpd    //重启ntp服务
    • 从服务器
    • 进行时间同步

          # systemctl stop firewalld.service  //关闭防火墙
          # setenforce 0
          #  systemctl start ntpd    //开启ntp服务
          # yum install ntp ntpdate -y
          # /usr/sbin/ntpdate 192.168.126.129    //进行时间同步//

      安装Mysql服务
      安装详解:http://blog.51cto.com/13630803/2108180
      安装后设置密码:

          # mysqladmin -u root password ‘123456‘
    • 配置主服务器

       # vim /etc/my.cnf
          server-id       = 11
          log-bin=master-bin                         //主服务器日志文件//
          log-slave-updates=true                     //从服务器更新二进制日志//
      # systemctl restart mysqld  
      # mysql -u root -p123456  //登录Mysql 给从服务器授权
      mysql> GRANT REPLICATION SLAVE ON *.* TO ‘myslave‘@‘192.168.126.%‘ IDENTIFIED BY ‘123456‘;
      mysql> FLUSH PRIVILEGES;
      mysql>show master status;

      技术分享图片

    • 配置从服务器

      # vim /etc/my.cnf
        server-id       = 22
          relay-log=relay-log-bin         //从主服务器上同步日志文件记录到本地//
          relay-log-index=slave-relay-bin.index        //定义relay-log的位置和名称//
      # systemctl restart mysqld
    • 按主服务器结果更改下面master_log_file 和master_log_pos

          # mysql -u root -p123456
          mysql> change master to master_host=‘192.168.126.129‘,master_user=‘myslave‘,master_password=‘123456‘,master_log_file=‘master-bin.000001‘,master_log_pos=604;
          mysql> start slave;  //启动同步
          mysql> show slave status\G;             //查看状态//

      技术分享图片

    • 测试一下
    • 主服务器上 create database test;
    • 去从服务器上 show databases;
      技术分享图片技术分享图片

    Mysql数据库的主从复制

    标签:数据   更新记录   5.7   添加   使用   详解   enforce   技术分享   mct   

    原文地址:http://blog.51cto.com/13630803/2136766

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!