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

    mysql 开启主从复制
    1、配置Master主服务器

    (1)在Master MySQL上创建一个用户‘synchro’,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步。

      1 mysql>create user synchro; //创建新用户
      2 //synchro用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为123456。说明一下192.168.1.111,这个配置是指明synchro用户所在服务器。
      3 mysql> GRANT REPLICATION SLAVE ON *.* TO 'synchro'@'192.168.1.111' IDENTIFIED BY '123456';
    (2)找到MySQL安装文件夹修改my.Ini文件 (linux 下 my.cnf)。mysql中有好几种日志方式,这不是今天的重点。我们只要启动二进制日志log-bin就ok。

           在[mysqld]下面增加下面几行代码

      1 server-id=1 //给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号
      2 log-bin=master-bin
      3 log-bin-index=master-bin.index
    (3)查看日志

      mysql> SHOW MASTER STATUS;
      +-------------------+----------+--------------+------------------+
      | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
      +-------------------+----------+--------------+------------------+
      | master-bin.000001 | 1285 | | |
      +-------------------+----------+--------------+------------------+
      1 row in set (0.00 sec)

    重启MySQL服务

    2、配置Slave从服务器(windows)

    (1)找到MySQL安装文件夹修改my.ini文件(linux 下 my.cnf),在[mysqld]下面增加下面几行代码

      1 [mysqld]
      2 server-id=2
      3 relay-log-index=slave-relay-bin.index
      4 relay-log=slave-relay-bin
    重启MySQL服务

    (2)连接Master

      change master to master_host='192.168.1.111', //Master 服务器Ip
      master_port=3306,
      master_user='synchro',
      master_password='123456',
      master_log_file='master-bin.000001',//Master服务器产生的日志
      master_log_pos=1258;

    (3)启动Slave

    start slave;

    注意事项:

    master_log_pos,master_log_file  这个表示需要同步的起始命令的坐标(如上为第一个文件的 第1258条命令)

    这两个信息可以在主库中通过 SHOW MASTER STATUS;查询

    当同步卡住报错时,如报错说更新失败,插入失败,找不到表等等时,可以在从库修复相应的数据,然后 stop slave;start slave; 解决

    如果找不到原有的数据时,可以修复到当前状态,通过跳过该指令

    set global sql_slave_skip_counter=1;   stop slave; start slave;

    锁表

    flush tables with read lock;

    解锁表

    unlock tables

  • 相关阅读:
    uniapp中的跳转传参
    图解排序算法(三)之堆排序
    serverlesss
    kvm
    用户态和内核态的理解和区别
    MySQL优化十大技巧
    不懂数据库索引的底层原理?那是因为你心里没点b树
    让你的 Linux 命令骚起来
    史上最简约的vi教程
    mysql 四种隔离级别
  • 原文地址:https://www.cnblogs.com/qinshuipo/p/9764871.html
Copyright © 2011-2022 走看看