美文网首页
MySQL主从复制

MySQL主从复制

作者: 攻城老狮 | 来源:发表于2020-12-29 18:56 被阅读0次

    一 master节点

    1. 关闭两个节点的防火墙
    systemctl stop firewalld.service
    
    1. 修改master的配置文件(/etc/my.cnf),添加如下内容:
    #mysql 服务ID,保证整个集群环境中唯一
    server-id=1
    #mysql binlog 日志的存储路径和文件名
    log-bin=/var/lib/mysql/mysqlbin
    #是否只读,1 代表只读, 0 代表读写
    read-only=0
    #忽略的数据, 指不需要同步的数据库
    binlog-ignore-db=mysql
    
    1. 重启mysql服务
    systemctl restart mysqld
    
    1. 进入mysql,创建同步数据账户,并授权
    # 修改密码复杂度,此版本特殊需求,否则不能设置简短密码
    set global validate_password_policy=LOW;
    set global validate_password_length=5;
    grant replication slave on *.* to 'slave'@'192.168.44.128' identified by 'slave';
    flush privileges;
    
    1. 查看master状态
    show master status;
    # File : 从哪个日志文件开始推送日志文件
    # Position : 从哪个位置开始推送日志
    # Binlog_Ignore_DB : 指定不需要同步的数据库
    
    image-20201229171907434.png

    二 Slave节点

    1. 使用vmvare的虚拟机拷贝方式,复制一台虚拟机作为从节点。具体虚拟机拷贝的设置可参考虚拟机拷贝的技术文档

    2. 使用mysql自带的函数生成一个UUID

    select uuid();
    
    1. 修改auto.cnf文件中的uuid (由于是通过虚拟机拷贝的,故两台虚拟机的mysql拥有相同的uuid,无法实现主从复制,需要修改) (/var/lib/mysql/auto.cnf)
    image-20201229171118292.png
    1. 修改slave的配置文件(/etc/my.cnf),添加如下内容:
    #mysql服务端ID,唯一
    server-id=2
    #指定binlog日志
    log-bin=/var/lib/mysql/mysqlbin
    
    1. 重启mysql服务
    systemctl restart mysqld
    
    1. 进入mysql,指定当前从库对应的主库的IP地址,用户名,密码,从哪个日志文件开始的那个位置开始同步推送日志
    change master to master_host= '192.168.44.142', master_user='slave',
    master_password='slave', master_log_file='mysqlbin.000001', master_log_pos=595;
    
    1. 开启同步
    start slave;
    show slave status;
    
    image-20201229172727043.png
    1. 停止同步
    stop slave;
    

    三 检验是否成功

    1. 在主节点创建一个数据库
    create database db01;
    
    1. 在从节点查看
    show databases;
    

    相关文章

      网友评论

          本文标题:MySQL主从复制

          本文链接:https://www.haomeiwen.com/subject/smdqoktx.html