溫馨提示×

Debian MariaDB集群搭建方法

小樊
36
2025-10-08 14:44:45
欄目: 云計算

Debian環境下搭建MariaDB Galera集群指南

一、準備工作

1. 環境要求

  • 至少3臺Debian系統服務器(推薦Debian 11/12),確保每臺服務器有靜態IP(如192.168.1.11、192.168.1.12、192.168.1.13);
  • 所有節點安裝sudo權限的非root用戶;
  • 節點間網絡互通,關閉防火墻或放通必要端口(3306、4444、4567、4568)。

二、安裝MariaDB與Galera組件

1. 更新系統并安裝依賴

在所有節點執行以下命令,更新系統并安裝必要的工具包:

sudo apt update && sudo apt upgrade -y
sudo apt install -y dirmngr software-properties-common rsync

2. 添加MariaDB官方存儲庫

以Debian 12為例,添加MariaDB 10.11的官方存儲庫(其他版本需調整URL):

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.11/debian bookworm main'
sudo apt update

3. 安裝MariaDB與Galera

MariaDB 10.1及以上版本已將Galera集成到mariadb-server包中,直接安裝即可:

sudo apt install -y mariadb-server galera-4

安裝過程中會提示設置root密碼(若未提示,后續通過mysql_secure_installation設置)。

三、配置MariaDB集群

1. 配置第一個節點(初始化集群)

在第一個節點(如192.168.1.11)上,創建Galera配置文件/etc/mysql/conf.d/galera.cnf,添加以下內容(替換為實際IP):

[mysqld]
# 基礎配置
bind-address = 0.0.0.0  # 允許遠程連接
default-storage-engine = InnoDB
innodb_autoinc_lock_mode = 2
binlog_format = ROW

# Galera集群配置
wsrep_on = ON
wsrep_provider = /usr/lib/galera/libgalera_smm.so
wsrep_cluster_name = "my_galera_cluster"  # 集群名稱(所有節點一致)
wsrep_cluster_address = "gcomm://192.168.1.11,192.168.1.12,192.168.1.13"  # 所有節點IP列表
wsrep_node_address = 192.168.1.11  # 當前節點IP
wsrep_node_name = "node1"  # 當前節點名稱(可選,用于標識)
wsrep_sst_method = rsync  # 狀態同步方法(可選:rsync/xtrabackup/mariabackup)

2. 配置其他節點

在其他節點(如192.168.1.12、192.168.1.13)上,修改galera.cnf中的以下參數(保持其他配置一致):

wsrep_node_address = 192.168.1.12  # 替換為當前節點IP
wsrep_node_name = "node2"  # 替換為當前節點名稱

注意:所有節點的wsrep_cluster_name必須完全一致,wsrep_cluster_address需包含所有節點IP。

四、啟動集群

1. 啟動第一個節點(初始化集群)

在第一個節點上,使用--wsrep-new-cluster參數啟動MariaDB,初始化集群:

sudo systemctl stop mariadb  # 確保服務已停止
sudo mysqld_safe --wsrep-new-cluster --wsrep-cluster-address="gcomm://192.168.1.11" &

或使用systemd命令(部分版本支持):

sudo systemctl start mariadb --wsrep-new-cluster

2. 啟動其他節點

在其他節點上,直接啟動MariaDB服務,自動加入集群:

sudo systemctl start mariadb

3. 驗證集群狀態

在任意節點上登錄MariaDB,執行以下命令檢查集群狀態:

mysql -uroot -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';"

若輸出結果中的Value等于節點數量(如3),則表示集群搭建成功。

五、安全加固

1. 運行安全腳本

初始化數據庫安全設置,刪除匿名用戶、禁止遠程root登錄等:

sudo mysql_secure_installation

按照提示設置root密碼、移除匿名用戶、禁止root遠程登錄、刪除test數據庫。

2. 配置遠程訪問(可選)

若需遠程訪問,修改/etc/mysql/mariadb.conf.d/50-server.cnf,注釋bind-address

#bind-address = 127.0.0.1

然后授權遠程用戶:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

3. 放通防火墻端口

放通MariaDB與Galera所需端口:

sudo ufw allow 3306/tcp  # MariaDB客戶端連接
sudo ufw allow 4444/tcp  # 狀態快照轉移
sudo ufw allow 4567/tcp  # Galera復制流量
sudo ufw allow 4568/tcp  # 增量狀態轉移
sudo ufw reload

六、測試集群功能

1. 創建測試數據庫

在任意節點上創建數據庫并插入數據:

CREATE DATABASE test_cluster;
USE test_cluster;
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO users (name) VALUES ('Alice'), ('Bob');

2. 驗證數據同步

在其他節點上查詢數據,確認同步成功:

USE test_cluster;
SELECT * FROM users;

若能查詢到AliceBob的記錄,則表示集群數據同步正常。

注意事項

  • 版本一致性:所有節點必須安裝相同版本的MariaDB,避免兼容性問題;
  • 存儲引擎:Galera僅支持InnoDB/XtraDB,需確保default-storage-engine=InnoDB;
  • 網絡穩定性:集群節點間網絡延遲需低(建議<10ms),避免節點間通信超時;
  • 備份策略:定期備份集群數據,可使用mysqldumpmariabackup工具。

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