在Linux上實現MariaDB集群可以通過多種方式,其中最常見的是使用MariaDB Galera Cluster。Galera Cluster是一個多主復制解決方案,支持同步復制,確保所有節點的數據一致性。以下是實現MariaDB Galera Cluster的基本步驟:
在每個節點上安裝MariaDB:
sudo apt-get update
sudo apt-get install mariadb-server mariadb-client
在每個節點上進行以下配置:
編輯配置文件:
sudo nano /etc/mysql/my.cnf
添加Galera配置:
[mysqld]
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=<sst_user>:<sst_password>
wsrep_on=ON
<node1_ip>,<node2_ip>,<node3_ip>
:所有節點的IP地址,用逗號分隔。<node_ip>
:當前節點的IP地址。<node_name>
:節點的名稱,可以是任意字符串。<sst_user>
和 <sst_password>
:用于SST(State Snapshot Transfer)的用戶和密碼。重啟MariaDB服務:
sudo systemctl restart mariadb
在第一個節點上初始化集群:
登錄到MariaDB:
mysql -u root -p
啟動Galera集群:
SET GLOBAL wsrep_cluster_size=3;
SET GLOBAL wsrep_cluster_address=gcomm://<node1_ip>,<node2_ip>,<node3_ip>;
在其他節點上加入集群:
登錄到MariaDB:
mysql -u root -p
加入集群:
SET GLOBAL wsrep_cluster_address=gcomm://<node1_ip>,<node2_ip>,<node3_ip>;
在任意節點上檢查集群狀態:
SHOW STATUS LIKE 'wsrep%';
你應該看到類似以下的輸出,表示集群已經成功啟動:
+-------------------------+----------+
| VARIABLE_NAME | VALUE |
+-------------------------+----------+
| wsrep_cluster_size | 3 |
| wsrep_cluster_status | Primary |
| wsrep_node_address | <node_ip>|
| wsrep_node_name | <node_name>|
+-------------------------+----------+
通過以上步驟,你可以在Linux上成功實現MariaDB Galera Cluster。