zoukankan      html  css  js  c++  java
  • linux 下 mysql 主从配置

    话不多说,直接干。

    准备条件:安装两个mysql数据库,随便哪个作主库,另一个从库。

    1.在主库创建 复制用的账号

     grant replication slave ,replication client on *.* to repl@'192.168.125.%' identified by 'repl';

    上面创建了账户repl,密码repl,赋予了权限replication slave(必要),replication client(非必要),*.* 意思是任意数据库的任意表。其中的192.168.125.% 表示此用户可以从ip开头为192.168.125的机器上访问主库。

    2.配置主库 ,linux下配置文件路径 /etc/my.cnf ,windows下路径:MySQLMySQL Server 5.7my-default.ini

      打开后编辑,添加 或修改下面两行。

    log_bin = master-bin
    server_id = 128

    server_id 的值随便设,每个数据库唯一。login_bin 指定主库生成的二进制文件的名字

    重启 主库的服务,然后登录主库执行 show master status;

    出现上面的图表示正常开启,主库配置完毕。

    3.配置从库,仍然是my.cnf (linux) ,或 my-default.ini(windows)

    添加或修改下面2行:

    server_id = 127

    relay_log = /var/lib/mysql/mysql-relay-bin

    server_id 指定mysql数据库唯一标识,relay-log是指定中继日志(下面解释)的位置和名字

    4.启动slave

    重启 从库,登录后执行

    change master to master_host = '主库ip' ,master_user='repl', master_password='repl', master_log_file='master-bin.000001',master_log_pos=0;

    然后使用 start slave;  开启复制。可以通过 show slave statusG; 查看复制信息如下图;

    这时候可以登录主库,更改主库数据,看看从库是否同步发生变化。

    5.主从如何复制

    复制有三个步骤:

    1. 主库把数据更改记录在二进制文件(上面的master-bin)中

    2.从库 把主库的二进制文件复制到自己的中继日志中。

    3.从库读取中继日志并执行。

    见上图。实际上,从库会启动一个IO线程与主库建立连接,并获取主库的更新事件,转储到中继日志。同时从库启动一个SQL线程,从中继日志读取记录并执行。既是允许获取事件和重放事件 异步进行。

    中继日志可能存在多个(00001,00002....),SQL线程执行完中继日志后会尽快将其删除(通过relay_log_purge参数控制)。

  • 相关阅读:
    Mayan游戏 (codevs 1136)题解
    虫食算 (codevs 1064)题解
    靶形数独 (codevs 1174)题解
    黑白棋游戏 (codevs 2743)题解
    神经网络 (codevs 1088) 题解
    The Rotation Game (POJ 2286) 题解
    倒水问题 (codevs 1226) 题解
    银河英雄传说 (codevs 1540) 题解
    生日蛋糕 (codevs 1710) 题解
    第一章 1.11 高阶函数
  • 原文地址:https://www.cnblogs.com/1xin1yi/p/7479989.html
Copyright © 2011-2022 走看看