centos mysql集群搭建

254
2025/3/17 12:33:01
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在CentOS上搭建MySQL集群可以采用多种高可用架构,如MMM(Master-Master Replication)、MHA(Master High Availability)、Galera Cluster、InnoDB Cluster等。以下是使用Galera Cluster和MySQL Router实现MySQL高可用集群的步骤:

准备工作

  1. 环境准备:确保所有节点(主节点、从节点、监控节点)的硬件配置相同,网络连接稳定。
  2. 关闭防火墙及SELinux
    systemctl stop firewalld
    systemctl disable firewalld
    sed -i 's/selinux=enforcing/selinux=disabled/g' /etc/selinux/config
    setenforce 0
    reboot
    
  3. 配置NTP服务:确保时间同步。
  4. 下载并解压必要的软件包:如galera-3-25.3.25-2.el7.x86_64.rpmmysql-wsrep-5.7-5.7.24-25.16.el7.x86_64.rpm等。

安装MySQL

在所有节点上安装MySQL服务器:

sudo yum install mysql-server

配置主从复制

  1. 配置主服务器

    • 编辑/etc/my.cnf文件,添加以下内容:
      [mysqld]
      server-id=1
      log_bin=/var/log/mysql/mysql-bin.log
      binlog_do_db=example_database
      
    • 重启MySQL服务:
      sudo systemctl restart mysqld
      
    • 设置主服务器密码并创建用于复制的用户:
      ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
      GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%' IDENTIFIED BY 'password';
      FLUSH PRIVILEGES;
      
    • 获取主服务器的二进制日志坐标:
      SHOW MASTER STATUS;
      
  2. 配置从服务器

    • 在从服务器上编辑/etc/my.cnf文件,添加以下内容:
      [mysqld]
      server-id=2
      relay-log=/var/log/mysql/mysql-relay-bin.log
      read-only=1
      
    • 重启MySQL服务:
      sudo systemctl restart mysqld
      
    • 配置从服务器连接主服务器:
      CHANGE MASTER TO
      MASTER_HOST='master_ip',
      MASTER_USER='replication',
      MASTER_PASSWORD='password',
      MASTER_LOG_FILE='mysql-bin.000001',
      MASTER_LOG_POS=1641;
      START SLAVE;
      
    • 验证从服务器同步状态:
      SHOW SLAVE STATUS\G;
      

配置Galera Cluster

  1. 安装Galera Cluster
    sudo yum install galera
    
  2. 初始化Galera Cluster
    • 在任意节点上执行:
      mysql -u root -p
      
    • 创建Galera集群配置文件并初始化:
      CREATE INSTANCE --cluster="galera_cluster" node_address='192.168.1.100' port=4444;
      
    • 加入其他节点到集群:
      mysqlcluster join --cluster="galera_cluster" node_address='192.168.1.101' port=4444;
      mysqlcluster join --cluster="galera_cluster" node_address='192.168.1.102' port=4444;
      

配置MySQL Router

  1. 安装MySQL Router
    wget https://dev.mysql.com/get/Downloads/MySQL-Router/mysql-router-8.0.23-el7-x86_64.tar.gz
    tar -zxvf mysql-router-8.0.23-el7-x86_64.tar.gz
    mv mysql-router-8.0.23-el7-x86_64 mysql-router-8.0
    export PATH=$PATH:/opt/apps/mysql-router-8.0/bin/
    
  2. 配置MySQL Router
    • 创建配置文件mysqlrouter.cnf
      [routing:primary]
      bind_address = 0.0.0.0
      bind_port = 7001
      max_connections = 1024
      available_masters = 192.168.1.100:3306,192.168.1.101:3306,192.168.1.102:3306
      routing_strategy = first-available
      
      [routing:secondary]
      bind_address = 0.0.0.0
      bind_port = 7002
      max_connections = 1024
      available_masters = 192.168.1.100:3306,192.168.1.101:3306,192.168.1.102:3306
      routing_strategy = first-available
      
    • 启动MySQL Router:
      mysqld --defaults-file=/opt/apps/mysql-router-8.0/etc/mysqlrouter.cnf
      

测试集群

通过MySQL Router连接到集群,并进行读写测试,确保数据同步正常。

以上步骤提供了在CentOS上搭建MySQL高可用集群的基本流程,具体配置可能需要根据实际情况进行调整。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: 怎样优化centos的存储空间