溫馨提示×

centos mysql集群搭建

小樊
49
2025-03-17 11:36:50
欄目: 云計算

在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.rpm、mysql-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高可用集群的基本流程,具體配置可能需要根據實際情況進行調整。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女