zoukankan      html  css  js  c++  java
  • mysql基于二进制文件的主从复制

    1.设置主服务器配置
            必须在主服务器上启用二进制日志,因为二进制日志是将更改从主服务器复制到从服务器的基础,如果未启用log-bin,则无法进行复制
            复制组内的每个服务器必须配置有唯一的id,此id用于标识组中的各个服务器,1到2³²-1之间的正整数。
            配置:
       [mysqld] 
       log-bin=mysql-bin 
       server-id=1
    

       注意:在mysql8.0以上版本中,如果没有设置server-id,或server-id为0,则主服务器将拒绝任何从属服务器的链接

     
    2.创建用于复制的账户
            每个从服务器都使用MySQL的用户名和密码链接主服务器,因此在主服务器上必须有一个用户账户,已供从服务器链接。
            需要为该账户指定 REPLICATION SLAVE 权限
            SQL:
        CREATE USER 'repl'@'%' IDENTIFIED BY '123456';
        GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
            注意:mysql8.0以上不支持直接在授予权限的时候指定用户密码
     
    3.获取主服务器的二进制日志位置
            要配置从属服务器在正确的位置开始复制过程,您需要在其二进制日志中记下主服务器的当前坐标。此过程需要使用 FLUSH TABLES WITH READ LOCK ,它会阻止innodb表的commit操作,如果计划关闭主数据库以创建数据快照,则可以跳过此过程,而是将二进制日志索引文件的副本与数据快照一起存储。
            步骤:
      • 1.在客户端命令行输入 FLUSH TABLES WITH READ LOCK 如果客户端退出了,则锁将被释放   
      • 2.在主服务器的另一个客户端连接中,使用show master status 确定当前二进制日志文件的名称和位置,file显示日志文件的名称,position列显示日志文件的坐标,记录这些值,稍候在从站的配置中需要用到
                            
     
     
    4.创建数据库快照
               如果主数据库包含现有数据,则必须先将数据复制到每个从数据库。
      • 使用mysqldump工具创建要复制的所有数据库的转储 ,可以使用--database table代替--all-database 指定想要导出的数据库 
          mysqldump -uroot -p  --all-databases --master-data > dbdump.db
      • 使用原始数据文件创建数据快照
            mysqladmin shutdown    //关闭主服务器
            tar cf /tmp/db.tar ./data 
            zip -r /tmp/db.zip ./data //使用zip或tar打包源数据文件,从服务器要用
            unlock tables //在执行FLUSH TABLES WITH READ LOCK的客户端中执行该命令
     
    5.从站设置
           每个从站都必须具有唯一的服务器id——server_id。如果没设置或与主服务器的server_id相同,需要在mysql.ini 或mysql.cnf中设置并指定唯一的server_id,然后重启服务器
        server_id=2 
      如果主服务器已有数据,需要先将数据导入到从服务器
     
      注意:如果没有设置server-id,或server-id为0,则从服务器将拒绝链接到主服务器
           要设置从服务器与主服务器进行通信以完成复制,需要为从服务器配置必要的链接信息。
      CHANGE MASTER TO  
            MASTER_HOST='master_host_name', /**主服务器地址*/
            MASTER_USER='repl',  
            MASTER_PASSWORD='123456',  
            MASTER_LOG_FILE='mybinlog.000021', 
            MASTER_LOG_POS=155;
    

      不知道怎么的就搞成双向同步了。。。。

     
     
     
  • 相关阅读:
    Arctic Network POJ
    Journey CodeForces
    Free Goodies UVA
    MU Puzzle HDU
    Balance POJ
    1sting 大数 递推
    最大报销额 暴力。。
    洛谷P2826 LJJ的数学课
    2018年12月29日
    2018年12月28日
  • 原文地址:https://www.cnblogs.com/jint-php7/p/12133851.html
Copyright © 2011-2022 走看看