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代理地址连接集群。