zoukankan      html  css  js  c++  java
  • MySQL 读写分离

    先决条件:主从服务器数据一致,主服务器刷新并生成一个新的 bin-log 日志

    flush logs;

    1、主服务器配置

    主服务器 MySQL 授权从服务器用户

    主服务器:192.168.01.1,从服务器:192.168.01.2; 主服务器授权用户:slave

    GRANT replication slave ON *.* TO 'slave'@'192.168.01.2' IDENTIFIED BY '1234'; 

    修改主服务器的配置文件my.cnf,开启binlog

    log_bin = mysql-bin // 开启binlog 日志
    binlog_format=mixed //二进制日志的格式,有三种:statement/row/mixed
    server-id=101 //为服务器设置唯一 id,一个文件只有一个server-id

    2、从服务器的配置

    修改my.cnf 配置文件

    log_bin = mysql-bin // 开启binlog 日志
    server_id=2 // 一个配置文件一个server-id
    master-host=192.168.01.1 // 主服务器IP
    master-user=slave// 主服务器用户名
    master-password=1234  // 主服务器密码
    master-port=3306 // 主服务器端口 

    或者命令行输入

    MySQL 服务重启

    service mysqld restart 

    查看是否配置成功:

    show slave statusG;

     

    Slave_IO_Running :从主服务器成功的bin-log日志同步并拿到数据

    Slave_SQL_Running: 从服务器成功地执行SQL语句

    上面两项均为yes,说明配置成功。

    从服务器相关命令

    start slave; //启动从服务器
    stop slave; // 停止从服务器
    show slave status; // 查看从服务器状态
    show master logs; // 查看主服务器 bin-log 日志
    change master to ……  // 动态改变到主服务配置
    show processlist;  // 查看从服务器运行进程

    主从数据不一致

    第一种方法

    stop slave;
    set  global sql_slave_skip_counter=1; //跳过一步错误
    start slave;

    第二种方法:

    stop slave;
    show master status;// 查看主服务器bin-log日志
    change master to…… // 手动同步 ,指定日志文件和文件位置 master-log-file="mysql-bin.00001"  master-log-pos=20

    重启从服务器,查看 show slave statusG,Slave_IO_Running、Slave_SQL_Running 都为 YES,同步成功。

    相关文章:Mysql主从复制原理及同步延迟问题

  • 相关阅读:
    CentOS 7中cAdvisor的安装过程
    怎么查看centos版本
    使docker命令不用加sudo的方法
    Linux进程相关函数system,fork,exec函数族的区别
    git pre-commit hook failed 解决办法
    lint-staged 教程
    用webpack将多个scss文件打包成一个css文件
    js连按键盘事件
    vscode快捷键
    vim 操作命令大全
  • 原文地址:https://www.cnblogs.com/xuey/p/13160389.html
Copyright © 2011-2022 走看看