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参数控制)。

  • 相关阅读:
    项目计划进度控制与资源管理
    读大道至简所思
    Java自学第三十二天
    Java自学第三十一天
    Java自学第三十天
    Java自学第二十九天
    Java自学第二十八天
    Java自学第二十七天
    Java自学第二十六天
    Java自学第二十五天
  • 原文地址:https://www.cnblogs.com/1xin1yi/p/7479989.html
Copyright © 2011-2022 走看看