Mysql主从复制和Mysql高可用以及负载均衡配置

需要先配置MySQL主从复制,然后再在主MySQL服务器上配置MySQL Router。以下是详细说明和步骤:

1. 为什么需要先配置MySQL主从复制?

MySQL主从复制是MySQL高可用性和负载均衡的基础,通过将数据从主服务器实时同步到从服务器,确保数据一致性和可用性。在配置MySQL Router之前,需要确保主从复制环境正常工作,这样MySQL Router才能根据主从架构进行读写分离和负载均衡。

2. MySQL主从复制配置步骤

以下是配置MySQL主从复制的主要步骤,参考:

(1)主服务器配置
  1. 开启二进制日志 :修改主服务器的配置文件(如my.cnf),确保以下设置:

    ini 复制代码
    [mysqld]
    server-id = 1
    log-bin = mysql-bin
    binlog-format = ROW
    binlog-do-db = your_database_name
  2. 创建复制用户

    sql 复制代码
    CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
    FLUSH PRIVILEGES;
  3. 记录主服务器状态

    sql 复制代码
    SHOW MASTER STATUS;

    记录FilePosition值,用于从服务器配置。

(2)从服务器配置
  1. 修改配置文件 :设置server-idrelay-log

    ini 复制代码
    [mysqld]
    server-id = 2
    relay-log = mysql-relay-bin
  2. 配置主服务器信息

    sql 复制代码
    CHANGE MASTER TO
    MASTER_HOST='master_ip',
    MASTER_USER='repl',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000001',  -- 主服务器记录的File值
    MASTER_LOG_POS=701;  -- 主服务器记录的Position值
  3. 启动复制

    sql 复制代码
    START SLAVE;
    SHOW SLAVE STATUS \G;

    检查Slave_IO_RunningSlave_SQL_Running状态是否为Yes

(3)验证主从同步

在主服务器执行写操作,然后查看从服务器是否同步:

sql 复制代码
SHOW SLAVE STATUS \G;

3. MySQL Router配置步骤

MySQL Router是一个轻量级中间件,用于实现读写分离、负载均衡和故障转移。以下是配置步骤,参考:

(1)安装MySQL Router

根据操作系统选择安装方式,例如在Ubuntu上:

bash 复制代码
sudo apt-get install mysql-router
(2)配置MySQL Router
  1. 生成配置文件

    bash 复制代码
    mysqlrouter --bootstrap root@localhost:3306 <<EOF
    mysqlrouter --user=mysqlrouter
    EOF
  2. 编辑配置文件mysqlrouter.conf):

    • 添加主服务器和从服务器信息:

      ini 复制代码
      [routing:writer]
      bind_address = 127.0.0.1
      port = 6446
      destinations = writer1:3306
      [routing:reader]
      bind_address = 127.0.0.1
      port = 6447
      destinations = reader1:3306,reader2:3306
    • 配置读写分离策略:

      ini 复制代码
      [default]
      routing_strategy = round-robin
(3)启动MySQL Router
bash 复制代码
mysqlrouter &
(4)测试连接
  1. 连接到主服务器

    bash 复制代码
    mysql -h 127.0.0.1 -P 6446 -u your_username -p
  2. 连接到从服务器

    bash 复制代码
    mysql -h 127.0.0.1 -P 6447 -u your_username -p

4. 配置顺序总结

  1. 先配置MySQL主从复制:确保主从服务器之间的数据同步正常。
  2. 再配置MySQL Router:在主服务器上安装并配置MySQL Router,实现读写分离和负载均衡。
相关推荐
启雀AI6 小时前
培训平台移动端离线学习方案设计与实现:视频缓存、断点续传与进度同步的工程实践
android·学习·缓存·音视频·企业lms
01_ice6 小时前
MySQL库和表的操作
数据库·mysql
我命由我123457 小时前
RxJava - 冷数据流与热数据流
android·java·java-ee·android studio·rxjava·android-studio·android runtime
这个DBA有点耶8 小时前
从库延迟的“二次放大”效应:一次大事务,拖垮整个读写分离
数据库·mysql·架构
2601_966563528 小时前
愤怒的小鸟单机版 去广告 安卓+PC端离线纯净版 益智耐玩小游戏 不需联网 老旧手机都可以玩 怀旧手机小游戏
android·智能手机
一个有温度的技术博主9 小时前
MySQL 三大日志协同机制:redo log、undo log 与 binlog 的联合运作
数据库·mysql·oracle
hunterandroid9 小时前
[Android 从零到一] Retrofit 请求取消与生命周期绑定:从 Call.cancel 到协程可取消设计
android
爱跑马的程序员9 小时前
安卓专有的通信子系统-Binder IPC
android·binder·ipc·安卓间通信机制
ue星空9 小时前
【安卓逆向】为什么用Frida?
android
小驰行动派10 小时前
Camx架构全景图:从V4L2到Pipeline的完整拆解
android·camera·android camera