• MySQL主从复制


    Mysql主从复制

    一、简介和准备

    1.1 概念

    mysql主从复制,主要是将主数据库的增删改查操作记录到二进制日志文件中,从库接收主库日志文件,根据最后一次更新的起始位置,同步复制到从数据库中,使得主从数据库保持一致。

    1.2 作用

    • 高可用性:主数据库异常可切换到从数据库
    • 负载均衡:实现读写分离
    • 备份:日常备份

    1.3 过程

    mysql主从复制

    如上图,其中的Binary Log 是

    二、实践

    准备两个数据库,在conf文件夹下创建my.cnf配置文件

    主库从库配置相同,但server-id不同

    [mysqld]
    #[必须]启用二进制日志
    log-bin=mysql-bin
    #[必须]服务器唯一ID,默认是取IP最后一段
    server-id=10
    #binlog-do-db = xxxname 要同步的数据库名
    #binlog-ignore-db = mysql 不同步mysql库和test库
    #binlog-ignore-db = test
    

    主库执行命令

    #创建同步账户并授权
    create user 'copyUser'@'%' IDENTIFIED by 'copyUser';
    GRANT REPLICATION SLAVE ON *.* TO 'copyUser'@'%';
    flush PRIVILEGES;
    #查看master状态
    show master status
    #查看二进制相关的配置项
    show global VARIABLES like 'binlog%'
    #查看server相关的配置项
    show GLOBAL VARIABLES like 'server%'
    #如果出现Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.
    ALTER USER 'copyUser'@'%' IDENTIFIED WITH mysql_native_password BY 'copyUser';
    flush PRIVILEGES;
    

    image-20211029171220902

    从库执行命令

    #设置master相关信息
    CHANGE MASTER TO
    master_host='ip地址',
    master_user='copyUser',
    master_password='copyUser',
    master_port=3306,
    master_log_file='mysql-bin.000001',
    master_log_pos=2145;
    #启动同步
    start SLAVE;
    #查看master状态
    show slave status;
    #stop SLAVE;可以使用此命令停止主从复制
    

    image-20211030105932129

    测试是否成功:

    主库创建数据库、表并插入数据

    image-20211030111312095

    在从库中进行查看

    image-20211030111525074

    三、取消主从复制

    3.1 slave流程

    停止slave mysql> stop slave

    清除slave信息

    mysql>reset slave all;
    
    # 可以通过以下命令查看当前状态
    mysql> show slave statusG
    
    Emptyset (0,00 sec)
    

    3.2 master流程

    清除master上主从信息 mysql> reset master;

    如果想彻底清除主从的机制,可以修改配置文件,删除主从相关的配置项,然后重启mysql即可。

    作者:Loserfromlazy
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    LOAD XML
    LOAD DATA
    INSERT 插入语句
    keras第一课
    android系统开发之开启启动
    Qt使用数据库
    微信订阅号案例之一
    python_install
    QtObject使用
    Qml_JS文件的使用
  • 原文地址:https://www.cnblogs.com/yhr520/p/15484615.html
Copyright © 2020-2023  润新知