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

  • 相关阅读:
    Linux(Ubuntu)使用日记------ssh远程登录腾讯云
    Linux(Ubuntu)使用日记------vim复制内容到其他应用
    Linux(Ubuntu)使用日记(七)------终端控制器Terminator安装使用
    Error updating database. Cause: java.sql.SQLException: Access denied for user '${username}'@'localhost' (using password: YES)
    Linux(Ubuntu)使用日记(三)------git安装使用
    90分钟实现一门编程语言——极简解释器教程
    新人入职100天,聊聊自己的经验&教训
    2010~2013,三年三十万+,从挣钱角度回忆自己研究生三年时光
    flex布局总结
    react项目 之 server-mongod数据库框架
  • 原文地址:https://www.cnblogs.com/qinshuipo/p/9764871.html
Copyright © 2011-2022 走看看