• sql主从复制搭建


    目录

    mysql主从介绍 

    主从搭建

    对主机数据库进行操作 


     

    mysql主从介绍 

    mysql从机复制的步骤: 

    slave会从master读取binlog来进行数据同步

    1 master主机将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events;
    2 slave将master的binary log events拷贝到它的中继日志(relay log);
    3 slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的 

    几种处理模式: 

    statement模式:不能使用函数,比如说你的主机使用函数now()记录时间但是当同步到从机的时候,他的时间就会发生变化(明显不一致),从而导致主从复制数据不一致的情况发送(个人感觉有点像RDB,直接数据同步,会有数据不一致情况)

    行模式row:效率较低,记录每一行的改变,如果数据量达到一个层面就会很慢了(个人感觉有点像AOF,给从机每一行去执行)

    MIXED模式:前面两种模式的结合版本;

    主从搭建

    修改主机的配置文件:

    先找到主机mysql的配置文件my.ini,然后配置日志文件的目录与设置不需要复制的数据库需要复制的数据库名字

     

    然后对从机的配置文件修改:

     对my.cnf文件修改

    1.在主机中创建一个用户,对于本机数据库中有所有权限

    1. #在主机本地,给远程赋予权限
    2. GRANT REPLICATION SLAVE ON *.* TO 'slave190401'@'%' IDENTIFIED BY '123';

     

     查看主机数据库状态

    show master status

     

    2.重启mysql主机

     3.然后在linux下重启我们的mysql从机

    systemctl restart mysqld
    

    4.然后我们查看一下mysql的status,发现running active即可

    systemctl status mysqld
    

    5.然后在window下关闭所有的防火墙

    并且关闭linux下的防火墙stop

    systemctl status firewalld
    

    mysql的主从复制和redis那些是有点相像的

    从机访问主机的Binary log都需要进行验证,看能不能进行访问,而我们的redis集群从机访问主机(也就是得到主机的RDB、AOF文件),也需要进行验证看是不是第一次数据加载,而这个验证就是看的id是不是相同的

    Binlog_Do_DB和Binlog_Ignore_DB指的是要复制的数据库和不要复制的数据库

    此时主机不要对这个Bin_Do_DB数据库进行操作,这是主从的数据库,如果变更,Position就会发送改变

    6.此时我们需要对linux下的mysql进行操作:拜主机为大哥,跟slave of有点相像

    1. CHANGE MASTER TO MASTER_HOST='192.168.184.1',
    2. MASTER_USER='slave190401',
    3. MASTER_PASSWORD='123',
    4. MASTER_LOG_FILE='mysqlbin.000001',MASTER_LOG_POS=107;

    7.如果之前从机给主机拜大哥出现问题,需要reset一下  

    stop slave
    reset master

     然后我们再开启主从复制

    start slave

    8.查看从机状态(类似redis中的 info replication)

    show slave status\G

    对主机数据库进行操作 

    对主机进行操作创建mydb_190401数据库后,发现我们从机用户连接的数据库也有了

    有延迟,毫秒级,完美bro

     如果说你从机拜大哥的命令出现了错误,直接stop slave停止从机,然后reset master即可——>回到执行拜大哥命令前

  • 相关阅读:
    基于ssm+Vue音乐播放器管理系统java源码
    Dubbo高手之路3,Dubbo服务消费详解
    Vue.prototype则是一种注册全局变量的方式,使得定义的属性和方法可以在所有Vue实例中共享和访问。
    Java面对对象的特征之二:继承性 :why?
    到底为什么不建议使用SELECT *?
    HTML期末学生大作业-拯救宠物网页作业html+css
    你已经是个成熟的 985 大学了,请不要在大一教 C 语言!
    长连接Netty服务内存泄漏,看我如何一步步捉“虫”解决
    docker(六)数据挂载之数据卷
    synchronized锁升级之轻量级锁
  • 原文地址:https://blog.csdn.net/weixin_57128596/article/details/125483399