• MySQL主从复制


    1、主从复制的前提(基本上就是这些)
    • 1、两台以上的Mysql实例(独立的主机或者多实例),保证server_id(>0)、server_uuid不同

    • 2、主库开启二进制日志(binlog)、(主从服务器同步时间)

    • 3、主库要开启一个专业的复制用户(给replication slave权限)

    • 4、“补课的操作”,如果要新加一个从库,那么要把主库的数据备份,然后恢复到从库。

    • 5、通知从库可以进行自动复制,确认复制的起点(使用命令change master to 主库ip port user password 起点)

    • 6、在从库启动专用的复制线程(start slave)

    2、步骤
    • 1、准备实例,且确保server_id、server_uuid不同(主库)

      命令:mysql -S /data/3306/mysql.sock -e "select @@server_id"

      命令:mysql -S /data/3307/mysql.sock -e "select @@server_uuid"

    • 2、主库开启binlog日志(主库)

      命令mysql -S 3306/mysql.sock -e "select @@ log_bin"; #1代表开启

      要改的配置文件是my.cnf---->{server_id=7 log_bin=/data/3306/mysql-bin}

    • 3、开启一个专用的复制用户(主库)

      创建且授权命令:mysql -S 3306/mysql.sock -e ""grant replication slave on . to tzh@'%' identified by 'root'";

      确认用户是否存在:mysql -S 3306/mysql.sock -e "select user,host from mysql.user";

    • 4、备份主库,恢复到从库(补课)

      全备份(主库):mysqldump -S /data/3306/mysql.sock -A --master-data=2 --single-transaction -R -E --triggers --max-allowed-packet=64M>/tem/full.sql

      -----master-data=2 记录备份时的二进制日志

      vim full.sql(查看同步到那个日志文件了)

      全备份1:mysqldump -S /data/3306/mysql.sock -A --master-data=2 --single-transaction -R --triggers >/backup/full.sql

      恢复(从库):登录到从库(1、mysql -S /data/3307/mysql.sock

      临时关闭二进制的记录(2、set sql_log_bin=0)

      恢复数据(3、source /tmp/full.sql

      恢复二进制的记录(4、set_sql_log_bin=1

    • 5、通知从库可以进行自动复制(从库)

      查看主库MySQL服务器二进制文件名与位置(mysql>SHOW MASTER STATUS;

      查看复制命令(help change master to

      复制的命令:CHANGE MASTER TO MASTER_HOST='192.168.1.30', MASTER_USER='repl', MASTER_PASSWORD='root', MASTER_PORT=3307, MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=4724323, MASTER_CONNECT_RETRY=10;(更改对应的参数即可)

    • 6、启动复制线程(从库)IO线程,SQL线程

      start slave

      查看这两个线程是否启动成功(mysql -S /mysql/3308/mysql.sock -e "show slave statusG"| grep Running

       

      原理图

     

     

  • 相关阅读:
    java程序员怎么创建自己的网站:第一章:总体流程
    技术汇总:第五章:使用angularjs做首页三级分类
    js中Function的apply方法与call方法理解
    常用方法
    Array对象(一)
    一张图理解is_nll isset empty
    解析centos中Apache、php、mysql 默认安装路径
    常用命令
    centos虚拟机启用网卡
    初学Linux笔记
  • 原文地址:https://www.cnblogs.com/hsyw/p/13097153.html
Copyright © 2020-2023  润新知