1. MySQL NDB Cluster(原生分布式集群)
MySQL NDB Cluster是MySQL官方提供的實時事務性數據庫集群,采用共享無狀態架構,支持高并發和線性擴展。搭建步驟如下:
sudo apt update
),安裝MySQL Cluster組件(sudo apt install mysql-cluster-community-server mysql-cluster-community-client
)。/etc/mysql/config.ini
,定義數據節點、管理節點信息(如[ndb_mgmd]
section設置主機名、數據目錄;[ndbd]
section設置數據節點主機名)。sudo ndb_mgmd --config-file=/etc/mysql/config.ini
)、數據節點(sudo ndbd
)、SQL節點(sudo systemctl start mysql
)。ndb_mgm
工具執行show
命令,查看集群節點狀態是否正常。2. Galera Cluster(同步多主集群)
Galera Cluster是基于同步復制的多主集群解決方案,支持數據強一致性和自動節點故障轉移,適用于需要高可用的場景。搭建步驟如下:
sudo apt install mysql-server galera-3
)。/etc/mysql/my.cnf
,添加Galera相關參數(如wsrep_provider=/usr/lib/galera/libgalera_smm.so
指定提供者;wsrep_cluster_address=gcomm://node1_ip,node2_ip,node3_ip
設置集群地址;wsrep_sst_method=xtrabackup-v2
設置狀態同步方法)。sudo systemctl start mysql --wsrep-new-cluster
);其他節點直接啟動MySQL(sudo systemctl start mysql
),自動加入集群。SHOW STATUS LIKE 'wsrep_cluster_size'
,若結果等于節點數量則集群正常。3. MySQL主從復制(異步復制集群)
主從復制是MySQL經典的集群方案,通過異步復制實現數據同步,適用于讀寫分離和備份場景。搭建步驟如下:
/etc/mysql/mysql.conf.d/mysqld.cnf
,開啟二進制日志(log_bin=/var/log/mysql/mysql-bin.log
)、設置server-id(server-id=1
);重啟MySQL(sudo systemctl restart mysql
);創建復制用戶(CREATE USER 'replicator'@'%' IDENTIFIED BY 'password'
)并授權(GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%'
);獲取二進制日志位置(SHOW MASTER STATUS
,記錄File和Position)。/etc/mysql/mysql.conf.d/mysqld.cnf
,設置server-id(server-id=2
)、relay-log(relay_log=/var/log/mysql/mysql-relay-bin.log
);重啟MySQL;配置復制(CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replicator', MASTER_PASSWORD='password', MASTER_LOG_FILE='recorded_file', MASTER_LOG_POS=recorded_position
);啟動復制(START SLAVE
)。SHOW SLAVE STATUS\G
,確認Slave_IO_Running
和Slave_SQL_Running
均為Yes
。4. 第三方工具輔助集群(如HAProxy負載均衡)
為提升集群的可用性和擴展性,可結合第三方工具實現負載均衡、故障轉移等功能。常見組合:
sudo apt install haproxy
),編輯/etc/haproxy/haproxy.cfg
添加frontend(綁定3306端口)和backend(配置節點輪詢);重啟HAProxy(sudo systemctl restart haproxy
);通過HAProxy代理地址連接集群。