zoukankan      html  css  js  c++  java
  • mysql 主备搭建

    为什么要复制数据库?

     

    简单来说有以下几个用处:

    1. 读写分离

    通过MySQL复制可以实现读写分离,将读操作分布到多个不同的服务器上,减轻服务器的压力。

    2. 备份

    从库可以作为数据的异地实时备份。

    3. 故障切换

    当主库遇到故障,系统可以切换到从库,实现故障切换。

    4. 升级测试

    从库可作为测试服务器的数据库。

    复制数据的步骤:

    1. 在主库上把数据更改记录到二进制日志(Binary Log)中。
    2. 备库将主库上的日志复制到自己的中继日志(Relay Log)中。
    3. 备库读取中继日志中的事件,将其在备库上重新执行一遍。

     具体操作步骤如下:

    1. 主备两台服务器安装相同版本的数据库,数据库的初始数据保持一致。
    2. (主库)配置同步账号
      1.    创建数据库复制用户:mysql>CREATE USER 'repl'@'172.16.127.83' IDENTIFIED BY '123456';
      2.    授权:mysql>grant replication slave on *.* to 'repl'@'172.16.127.83' ;

      3.(主库)修改/etc/my.cnf文件,注意确保:server-id 唯一

      1.  server-id=1
      2.  log-bin=mysql-bin
      3.  lower_case_table_names=1(数据表不区分大小写)

      4.(主库)重启master端

          1.   service mysqld restart

      5.(主库)查询主库上当前的二进制日志名和偏移量值,记录下file跟position的值,待会从库要用

          1.   mysql>show master status G

      6.(从库)修改/etc/my.cnf文件,注意确保:server-id 唯一

      1.  server-id=2
      2.  lower_case_table_names=1(数据表不区分大小写)

      7.(从库)重启slave端

          1.  service mysqld restart

      8.(从库)对从数据库服务器做相应设置,指定复制使用的用户,主数据库服务器的IP、端口以及开始执行复制的日志文件和位置等
          1.  mysql>CHANGE MASTER TO MASTER_HOST='172.16.127.49',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000013',MASTER_LOG_POS=156;

      9. (从库)启动slave线程

          1.  mysql>start slave;

      10.  主库跟从库分别检查状态  

        1. 检查master的:mysql>show processlistG      结果:看到上面的Command: Binlog Dump说明配置成功!

        2.检查slave的:mysql>show slave status G       结果:提示:Slave_IO_Running和Slave_SQL_Running两个值为YES基本上成功了

  • 相关阅读:
    DP——背包问题(三)
    堆——练习题
    DP——背包问题(二)
    二叉树的后序遍历(暴力版) 小白菜oj 1034
    树状数组2模板 Luogu 3368
    树状数组1模板 Luogu 3374
    DP——最长上升子序列(n^2与n log n)
    线段树(区间修改)模板题 Luogu 2357 守墓人
    c语言学习摘录
    python 学习摘录
  • 原文地址:https://www.cnblogs.com/itliyh/p/13803693.html
Copyright © 2011-2022 走看看