• 004_MySQL 主从配置


    MySQL主从配置

    1. 主从实现原理

    MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步;
    MySQL主从是基于binlog的,主上须开启binlog才能进行主从。
    主从过程大致有3个步骤
    1)主将更改操作记录到binlog里;
    2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里;
    3)从根据relaylog里面的sql语句按顺序执行;
    主上有一个log dump线程,用来和从的I/O线程传递binlog
    从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地

    注意: “主”“从”配置前,一定要确保两个数据库内容一样(“mysql”的库可以不用同步);若数据库中数据有差异,可使用“备份”、“恢复备份”的方法,手动将两个数据库内容同步;“mysql”的库可以不用同步

    2. “主” 配置

    2.1 安装mysql/mariadb

    具体安装步骤,此处忽略

    2.2 修改数据库配置文件 my.cnf

    vim /etc/my.cnf
    #### 增加一下内容
    ……
    server-id=250    # server id 无特殊要求,自行设置
    log_bin=vm001    # binlog 前缀
    ……
    #### 重启mysqld服务
    systemctl restart mariadb
    

    2.3 创建数据库用户

    用作同步数据

    grant replication slave on *.* to 'repl'@'192.168.67.249' identified by 'vm001admin';

    2.4 锁定数据库

    flush tables with read lock;

    2.5 查看状态

    查看“主”状态信息;“从”配置需要用到File和Position信息

    show master status;

    3 “从”配置

    3.1 安装mysql/mariadb

    具体安装步骤,此处忽略

    3.2 修改数据库配置文件 my.cnf

    vim /etc/my.cnf
    #### 增加一下内容
    ……
    server-id=249    # server id 要求和“主”id不一样,无其他特殊要求
    ……
    
    #### 重启mysqld服务
    systemctl restart mariadb
    

    3.3 停止 slave

    stop slave;

    3.4 配置“主”“从”连接

    change master to master_host='192.168.67.250',master_user='repl',master_password='vm001admin',master_log_file='vm001.000002',master_log_pos=245;
    

    master_host:“主”IP地址;
    master_user :用于同步的账户;
    master_password :用于同步的密码
    master_log_file:“主”状态信息中 “File” 的信息
    master_log_pos:“主”状态信息中 “Position” 的信息

    3.5 启动 slave

    start slave;

    3.6 解除“主”数据库的锁定

    unlock tables; 需要到“主”数据库中操作

    3.7 查看主从是否成功

    “从”库中输入 show slave statusG 查看从状态;查看“Slave_IO_Running”和“Slave_SQL_Running” 两项参数是否为“Yes”,如果有一项为“No”则说明“主”“从”不通,存在问题。

    还需关注以下参数:

    a. Seconds_Behind_Master: 0  #为主从延迟的时间
    b. Last_IO_Errno: 0
    c. Last_IO_Error:
    d. Last_SQL_Errno: 0
    e. Last_SQL_Error:
    

    4 几个配置同步参数

    4.1 “主”服务器上

    binlog-do-db=  #仅同步指定的库
    binlog-ignore-db=  #忽略指定库
    

    4.2 “从”服务器上

    replicate_do_db=  #仅同步指定的库
    replicate_ignore_db=  #忽略指定库
    replicate_do_table=  #仅同步指定的表
    replicate_ignore_table=  #忽略指定表
    replicate_wild_do_table=  #同步指定的库和表 (如:aming.%, 支持通配符%)
    replicate_wild_ignore_table=  #忽略指定库和表
    

    同步参数“主”“从”上均可设置,只要设置一个就可以了

  • 相关阅读:
    spring aop
    Linux进程管理命令
    逻辑卷管理-LVM(Logical Volume Manager)
    Linux磁盘与文件系统管理(二)
    Linux磁盘与文件系统管理(一)
    Linux后台运行和关闭、查看后台任务
    Linux用户管理及用户信息查询
    文件备份与压缩
    Liunx信息显示与文件搜索
    文本处理三剑客之 awk
  • 原文地址:https://www.cnblogs.com/cy-8593/p/9543660.html
Copyright © 2020-2023  润新知