zoukankan      html  css  js  c++  java
  • MySQL主从数据库配置与原理

    1.为什么要搭建主从数据库

    (1)通过增加从库实现读写分离,提高系统负载能力

    (2)将从库作为数据库备份库,实现数据热备份,为数据恢复提供机会

    (3)根据业务将不同服务部署在不同机器同时又共享相同的数据

     2.主从数据库原理分析

     主从数据库同步流程

    步骤一:主库开启binlog日志后,会启动dump将数据数据变化写入binlog

    步骤二:从库开启slave参数后,会与主库建立一个连接

    步骤三:主库数据变化是dump线程会将变化的数据写入binlog中并将数据通过步骤二建立的连接写到从库中

    步骤四:从库接收到主库发送的binlog内容后将内容写入relay log

    步骤五:创建一个SQL线程从relay log读取数据写入到数据库中

    3.搭建流程

    以contes7系统,5.7.29版本的数据库为例

    (1)安装完数据库之后找到主库mysql服务的配置文件my.cnf,一般默认在/etc/目录下

    (2)在配置文件中的[mysqld]下增加以下两行,server-id为mysql服务唯一id,不用mysql服务不能重复,log-bin=mysql-bin为生成binlog的文件目录和文件名,也可写成log-bin=/自定义目录/mysql-bin

    server-id=1
    log-bin=mysql-bin

    (3)mysql会话输入show master status;

     (4)修改从库mysql服务配置文件,增加以下一行配置

    server-id=2

    (5)在主库会话中创建从库同步数据的账号并刷新权限,赋予slave权限到用户名为“slave”的账户上,“%”表示不限制ip,密码为“123456”

    grant replication slave on *.* to 'slave'@'%' identified by '123456';
    flush privileges;

    (6)从库mysql会话设置要连接的主库的相关信息,设置参数与show master status查询出来的数据对应上即可

    change master to master_host='192.168.168.243',master_user='slave',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=8378;

    (7)从库开启同步功能

    start slave;

    (8)查看从库状态show slave status; 可以看到Slave_IO_Running和Slave_SQL_Running两个线程已启动

  • 相关阅读:
    spring整合websocket通信
    Log4j学习
    Elasticsearch学习之ES节点类型以及各种节点的分工
    Elasticsearch 学习之提升性能小贴士
    Python奇技淫巧
    汉语拼音转换工具(Python 版)
    根据数据库的表结构的类型返回其对应的简写类型
    python的动态加载机制??
    计算二进制中的字符串的长度
    一个erlang游戏服务端
  • 原文地址:https://www.cnblogs.com/xiguadadage/p/12801083.html
Copyright © 2011-2022 走看看