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

    Mysql主从复制概述:
        mysql的主从复制,可以实现读写分离和多处自动备份,提高数据库负载能力和安全性。如下图:
            
        当web服务器向mysql数据库写数据时,统一写到master所在的主库。
        当web服务器从mysql数据库读数据时,从各自的slave从库读取。
        主库和从库之间的数据更新采用"异常更新"的方式执行,从库定时向主库发送心跳包,检测主库的二进制日志文件(binary log file)中有没有变动的地方,如果发现有变动就把变化复制到自己的中继日志中,然后从库的一个sql线程会把相关的"事件"执行到自己的数据库中,从而实现主从数据库的数据一致性,也就是主从复制。如下图:
            
    Mysql主从复制配置:
    • 主服务器的配置:
      • 开启二进制日志(在my.cnf(或my.ini)中插入:log-bin=mysql-bin #开启二进制日志)
      • 配置唯一的server-id(在my.cnf(或my.ini)中插入:server-id=1 #设置server-id)
      • 获得master二进制日志文件名及位置(执行SQL:SHOW MASTER STATUS拿到file和position)
      • 创建一个用于slave和master通信的用户账号,示例如下( 用户:rel1     密码:slavepass):
        • mysql>  CREATE USER 'repl'@'123.57.44.85' IDENTIFIED BY 'slavepass';      #创建用户
        • mysql>  GRANT REPLICATION SLAVE ON *.* TO 'repl'@'123.57.44.85';          #分配权限
        • mysql>  flush privileges;                                                 #刷新权限
    • 从服务器的配置:
      • 启用slave服务(执行SQL:start slave)
      • 配置唯一的server-id(在my.cnf(或my.ini)中插入:server-id=2 #设置server-id)
      • 使用master分配的用户账号读取master二进制日志,重启mysql,执行SQL语句如下:
        • mysql > CHANGE MASTER TO
          • > MASTER_HOST='182.92.172.80',
          • > MASTER_USER='rep1',
          • > MASTER_PASSWORD='slavepass',
          • > MASTER_LOG_FILE='mysql-bin.000003',
          • > MASTER_LOG_POS=73;
     
     
     
  • 相关阅读:
    C++ XML解析之TinyXML篇[转]
    TinyXML:一个优秀的C++ XML解析器[转]
    nginx 出现413 Request Entity Too Large问题的解决方法
    redis配置认证密码
    《Discuz安装时候出现乱码 -- 问题解决方法》
    MySQL创建用户与授权
    CentOS 7 安装mysql
    setfacl命令 来自: http://man.linuxde.net/setfacl
    install pip3 for python 3.x
    自己制作ssl证书:自己签发免费ssl证书,为nginx生成自签名ssl证书
  • 原文地址:https://www.cnblogs.com/ladawn/p/9217669.html
Copyright © 2011-2022 走看看