• mysql-通过binlog日志复制主从同步


    主从复制binlog日志方式

    量大的时候使用GTID效率更高,维护起来比较麻烦

    有了主从同步也要做备份(双保险,本地有一份,主从同步也有一份 )

    1、准备环境两台机器,关闭防火墙和selinux。---两台机器环境必须一致。时间也得一致
    10.36.107.10 mysql-master
    10.36.107.11  mysql-slave
    2、两台机器安装mysql5.7(略)建议使用相同的安装方式
    注意:
    对主库已有的数据库不会进行自动同步。
    主从同步之前,对主库上已有数据库备份,并在从库上导入同步。
    
    
    1.开始配置主服务
    在主服务器上添加配置
    vim /etc/my.cnf 
    [mysqld]
    log-bin=/usr/local/mysql/logs/mysql-bin/mylog
    server-id=1
    重启服务
    systemctl restart mysqld
    
    在从服务器上添加配置
    [mysqld]
    server-id=2
    重启服务
    systemctl restart mysqld
    
    在主服务器上 创建日志目录并赋予权限
    [root@mysql-master ~]# mkdir /usr/local/mysql/logs/mysql-bin/mylog
    [root@mysql-master ~]# chown mysql:mysql /usr/local/mysql/logs/mysql-bin/mylog
    
    2.在主服务器上查看binlog以及POS
    mysql> show master status \G; 194
    3.给主库授权 创建主从同步的用户:(只设置一个复制权限就可以了 slave )
    mysql> grant replication slave on *.*  to 'repl'@'%' identified by 'Qf@12345!';
    mysql> flush privileges;
    查看状态 状态码会发生变化
    mysql> show master status \G; 629
    
    3在从服务器上
    从库重设#全在从库执行(断开于主库之间的通信,脱离主从关系)
    mysql> stop slave;
    mysql> reset slave;
    mysql> reset master;
    查看状态 状态码会发生变化
    mysql> show master status \G; 
    
    
    (执行这条命名发现登录不上 就重启一下 systemctl stop mysqld
    systemctl start mysqld  mysql然后在登录,因为之前做过GTID残留)
    mysql> change master to
    master_host='192.168.171.15',
    master_user='repl', 
    master_password='Qf@12345!', 
    master_log_file='/usr/local/mysql/bin-log/binlog.000002',
    master_log_pos=2625;
    
    find / -name "binlog.000002" 查找binlog的绝对路径
    /usr/local/mysql/bin-log/binlog.000002
    
    
    
    启用从库身份
    mysql> start slave;
    查看状态
    mysql> show slave status\G;
    #查看状态,验证sql和IO是不是yes。
    
    在主服务器创建数据库a2
    mysql> create database a2;
    在从服务器上进行查看a2
    mysql> show databases;
    
    在主服务器删除数据库a2
    mysql> drop databases a2;
    在从服务器上进行查看a2也删除了
    mysql> show databases;
    
    开启只读模式
    查看是否只读模式:show variables like 'read_only';
    
    关闭只读模式
    vim /etc/my.cnf
    read-only=1
    并重启mysql服务
    systemctl restart mysqld
    
    故障切换
    mysql主从,master宕机,如何进行切换?
    主机故障或者宕机:
    1)在salve执行:
    mysql> stop slave;
    mysql> reset master;
    2)查看是否只读模式:show variables like 'read_only';
    只读模式需要修改my.cnf文件,注释read-only=1并重启mysql服务。
    或者不重启使用命令关闭只读,但下次重启后失效:set global read_only=off;
    3)查看show slave status \G;
    4)在程序中将原来主库IP地址改为现在的从库IP地址,测试应用连接是否正常
    
    查看uuid号码
    [root@localhost ~]# vim /usr/local/mysql/data/auto.cnf
    [auto]
    server-uuid=4f37a731-9b79-11e8-8013-000c29f0700f
    修改uuid并重启服务
    

    重设从库

    主库查看binlog,pos
    mysql> show master status \G;
    *************************** 1. row ***************************
                 File: mylog.000003
             Position: 348
         Binlog_Do_DB: 
     Binlog_Ignore_DB: 
    1 row in set (0.00 sec)
    
    从库上操作
    mysql>stop slave;
    mysql>reset slave;
    mysql>reset master; 
    #从库的binlog已经无效了,所以要执行这个命令清空binlog
    CHANGE MASTER TO
    MASTER_HOST='10.36.107.10',
    MASTER_USER='slave',
    MASTER_PASSWORD='Qf@12345!',
    MASTER_LOG_FILE='mylog.000003',
    MASTER_LOG_POS=348;
    mysql> start slave;
    mysql> show slave status\G;
    
  • 相关阅读:
    Alexa染料标记RNA核糖核酸|RNA-Alexa 514|RNA-Alexa 488|RNA-Alexa 430
    备赛笔记:神经网络
    linux————ceph分布式部署
    保姆级教程 --redis启动命令
    1、STM32F407 LED Demo
    2022“杭电杯” 中国大学生算法设计超级联赛(5)6 7 题解
    js-算法题-移动0
    【网络编程】
    linux驱动 平台设备驱动模型
    二开版视频CMS完整运营源码/新版漂亮APP手机模板/集成员分销功能等
  • 原文地址:https://blog.csdn.net/wenwenkaii/article/details/139280547