zoukankan      html  css  js  c++  java
  • mysql主从复制

    mysql 的主从复制实现的原理就是 binlog 日志,那么我们主节点负责数据库写操作,而从节点负责读操作,这样在从节点上不需要使用事务,能够大大提高数据库的性能。那么这个时候面临的问题就是从节点如何来同步主节点数据的问题,就用到了我们之前说过的 binlog 日志。从节点通过 binlog 日志来与主节点进行数据同步

    三台节点,一个 master,两个 slave,规划如下

     

    三台节点都是使用 CentOS7操作系统,数据库使用的是 mysql5.7。

    具体操作如下:

      1. 配置master:

      创建用户并授权,比如我们的用户叫做 repl,创建用户语法如下:

      create user   'ygb' identified by 'ygb123';

      2. 授权: 

        用户必须具备 replication slave 权限,除此之外不需要其他的权限

        grant replication slave on *.* to 'ygb'@'192.168.153.%' identified by 'ygb123';

      3.开启 binlog 日志:

        binlog日志,即binary log,是二进制日志文件。它有两个作用,一是增量备份,即只备份新增的内容;二是用于主从复制等,即主节点维护了一个binlog日志文件,

        从节点从binlog中同步数据。我们可以通过binlog日志恢复数据  

          1)查看binlog状态:show variables like '%log_bin%'

          2)使用vi编辑器修改MySQL的my.cnf配置文件,在my.cnf配置文件中添加如下图的两句

          

          3)重启mysql

          

      至此,主服务器就配置好了。下面来进行配置从服务器

      slave1

       1.修改 my.inf 配置文件

      [mysqld]server-id=2relay-log-index=slave-relay-bin.indexrelay-log=slave-relay-bin

      2.连接 Master

        change master to master_host='192.168.0.104', //Master 服务器 Ip

        master_port=3306,

        master_user='yugb',

        master_password='mysql',

        master_log_file='master-bin.000001',//Master 服务器产生的日志 master_log_pos=0;

        change master to master_host='192.168.153.201',master_port=3306,master_user='yugb',master_passwo rd='yugb',master_log_file='/var/lib/mysql/mysql-bin.000001',master_log_pos=0;

      3.查看状态

        show slaves statusG

      

      这里关注两个地方,第一个是 Slave_IO_Running,第二个是 Slave_SQL_Running。这两个必须都为 yes 才可以启动从节点。那么问题出现在哪里呢,后面会有日志提示

      

      这里是说两台节点的 uuid 一致,要让这两台机器的 uuid 不一致才行,那么 uuid 在哪呢,在我们数据目录下 auto.cnf 文件中,只要修改这个文件就可以了。

      

      再来查看状态,然后就为 yes 了。

      4.启动

         start slave

       5.关闭

         stop slave

       6.重置

         reset slave

      

  • 相关阅读:
    Python学习第106天(Django的静态文件static、url分组)
    Python学习第105天(Django初步实现)
    Python学习第104天(Django前传web框架)
    Python学习第103天(http协议)
    Python学习第102(数据库进阶)
    Python学习第101天(mysql索引)
    Python学习第100天(多表查询:连接查询、复合查询、子查询)
    Python学习第99天(子网划分)
    java强制转换+自动转换
    WINDOWS快捷键
  • 原文地址:https://www.cnblogs.com/yugb/p/9533592.html
Copyright © 2011-2022 走看看