zoukankan      html  css  js  c++  java
  • MySQL 主主配置

    一、准备

    1、两个数据库版本最好保持一致(因为官方就是这么建议的,主要的问题就是考虑到兼容性问题)

    2、连个数据库的数据保持一致,若不一致,可手动调整,比如A比B多一个库,那就将这个库导入到B库,达到一致

    A数据库:182.92.172.80

    B数据库:123.57.44.85

    二、操作

      A数据库

    1、开启binlog

    [mysqld]
    log-bin=mysql-bin #开启二进制日志
    server-id=1 #设置server-id,不能一样
    

    2、重启mysql,创建同于同步的用户账号

    systemctl restart mysql
    

     登陆数据库

    mysql -u root -p
    

     创建用户并授权:用户:test,密码:123456,ip:B主机的ip

    create user 'test'@'123.57.44.85' identified by '123456';
    

     分配权限

    grant replication slave on *.* to 'test'@'123.57.44.85';
    flush privileges;
    

     锁表,禁止写入,当前窗口不能退出,这时候开启另一个终端继续操作

    flush table with read lock;
    

     3、新窗口操作,查看master状态,记录二进制文件名和位置

    show master status;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000003 |     1042 |              |                  |
    +------------------+----------+--------------+------------------+
    

     4、将当前数据库导出,如果两个数据库不一致,手动调整

     mysqldump -u root -p --all-databases > alldb.sql
    

     5、解锁查看binlog日志位置,如果没变化证明锁定成功。从库将从这个binlog日志开始恢复

    unlock tables;
     show master status;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000003 |     1042 |              |                  |
    +------------------+----------+--------------+------------------+
    

       B数据库操作

    1、导入数据

    mysql -u root -p < alldb.sql 
    

     2、修改配置文件

    [mysqld]
    log-bin=mysql-bin #开启二进制日志
    server-id=2 #设置server-id,必须唯一
    

     3、重启mysql,配置同步

    systemctl restart mysql
    

     需要A服务器主机名,登陆凭证,二进制文件名称和位置

    change master to master_host='182.92.172.80',
        -> master_user='test',
        -> master_password='123456',
        -> master_log_file='mysql-bin.000003',
        -> master_log_pos=1024;
    #master_log_pos位置最好在 mysql-bin.000003里面找,用下面这个命令
    #mysqlbinlog mysql-bin.000003 > test.txt
    

     4、开启slave,查看slave状态

    start slave;
    show slave statusG;
    

    5、配置作为A的主

     创建用户并授权:用户:test,密码:123456,ip:A主机的ip

    create user 'test'@'182.92.172.80' identified by '123456';
    

     分配权限

    grant replication slave on *.* to 'test'@'182.92.172.80';
    flush privileges;
    

     这次不用锁表了,因为B在同步A数据的时候,已经一致了。

    6、新窗口操作,查看master状态,记录二进制文件名和位置

    show master status;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000003 |     1042 |              |                  |
    +------------------+----------+--------------+------------------+
    

       A数据库操作

    1、需要B服务器主机名,登陆凭证,二进制文件名和位置

    change master to master_host='123.57.44.85',
        -> master_user='test',
        -> master_password='123456',
        -> master_log_file='mysql-bin.000003',
        -> master_log_pos=1024;
    #master_log_pos位置最好在 mysql-bin.000003里面找,用下面这个命令
    #mysqlbinlog mysql-bin.000003 > test.txt
    

     2、开启查看slave状态

    start slave;
    show slave statusG;
    
  • 相关阅读:
    BZOJ 1977: [BeiJing2010组队]次小生成树 Tree( MST + 树链剖分 + RMQ )
    BZOJ 2134: 单选错位( 期望 )
    BZOJ 1030: [JSOI2007]文本生成器( AC自动机 + dp )
    BZOJ 2599: [IOI2011]Race( 点分治 )
    BZOJ 3238: [Ahoi2013]差异( 后缀数组 + 单调栈 )
    ZOJ3732 Graph Reconstruction Havel-Hakimi定理
    HDU5653 Bomber Man wants to bomb an Array 简单DP
    HDU 5651 xiaoxin juju needs help 水题一发
    HDU 5652 India and China Origins 并查集
    HDU4725 The Shortest Path in Nya Graph dij
  • 原文地址:https://www.cnblogs.com/charon2/p/10471899.html
Copyright © 2011-2022 走看看