在Debian系統上部署MariaDB集群,可以使用MariaDB Galera Cluster。Galera Cluster是一個多主復制解決方案,支持實時數據同步和自動故障轉移。以下是詳細的步驟:
首先,在所有節點上安裝MariaDB。
sudo apt update
sudo apt install mariadb-server mariadb-client
在每個節點上進行配置。
編輯/etc/mysql/mariadb.conf.d/50-server.cnf
文件(或/etc/my.cnf
),添加以下內容:
[mysqld]
# 基本設置
bind-address = 0.0.0.0
server-id = 1 # 每個節點的唯一ID
# Galera Cluster設置
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://<node1_ip>,<node2_ip>,<node3_ip>
wsrep_node_address=<node_ip>
wsrep_node_name=<node_name>
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=your_sst_user:your_sst_password
wsrep_sst_donor=/usr/bin/xtrabackup --datadir=/var/lib/mysql --user=your_sst_user --password=your_sst_password --target-dir=/var/lib/mysql/backup
wsrep_sst_receive=yes
wsrep_sst_max_size=1G
wsrep_sst_compress=on
wsrep_certify_non_PX=on
wsrep_on=ON
將<node1_ip>
, <node2_ip>
, <node3_ip>
替換為所有節點的IP地址,<node_ip>
替換為當前節點的IP地址,<node_name>
替換為當前節點的名稱。
在每個節點上重啟MariaDB服務以應用配置:
sudo systemctl restart mariadb
在一個節點上初始化集群。
sudo mysql -u root -p
在MySQL shell中執行以下命令:
CREATE USER 'galera'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'galera'@'%';
FLUSH PRIVILEGES;
然后退出MySQL shell:
EXIT;
在其他節點上加入集群。
sudo mysql -u root -p
在MySQL shell中執行以下命令:
CREATE USER 'galera'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'galera'@'%';
FLUSH PRIVILEGES;
然后退出MySQL shell:
EXIT;
在任意一個節點上檢查集群狀態:
sudo mysql -u root -p
在MySQL shell中執行以下命令:
SHOW STATUS LIKE 'wsrep_cluster_size';
如果返回值大于1,說明集群已經成功初始化并運行。
確保防火墻允許MariaDB端口(默認3306)的通信。
sudo ufw allow 3306/tcp
定期監控集群狀態,并進行必要的維護,例如備份和升級。
通過以上步驟,你可以在Debian系統上成功部署MariaDB Galera Cluster。