在当今大数据和高并发应用场景下,单机数据库已经难以满足业务需求。通过在 Ubuntu 系统上搭建数据库集群,不仅可以提升系统性能,还能实现高可用性和容灾能力。本教程将从零开始,详细讲解如何在 Ubuntu 上部署一个高可用的数据库集群,即使是 Linux 新手也能轻松上手。
Ubuntu集群是指多台运行 Ubuntu 操作系统的服务器通过网络连接协同工作,形成一个逻辑上的整体。而数据库部署在这样的集群上,可以实现数据分片、负载均衡、故障转移等高级功能。
常见的开源方案包括 MySQL Group Replication、PostgreSQL with Patroni、MongoDB 副本集等。本文将以 MySQL Group Replication 为例,演示如何在三台 Ubuntu 22.04 服务器上搭建一个高可用数据库集群。
你需要准备以下资源:
为方便管理,先给每台服务器设置唯一主机名:
# 在 node1 上执行sudo hostnamectl set-hostname db-node1# 在 node2 上执行sudo hostnamectl set-hostname db-node2# 在 node3 上执行sudo hostnamectl set-hostname db-node3
然后在每台服务器的 /etc/hosts 文件中添加以下内容:
192.168.1.101 db-node1192.168.1.102 db-node2192.168.1.103 db-node3
在所有节点上执行以下命令安装 MySQL:
sudo apt updatesudo apt install -y mysql-server
安装完成后,启动并启用 MySQL 服务:
sudo systemctl start mysqlsudo systemctl enable mysql
编辑 MySQL 配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf,在 [mysqld] 段落下添加以下通用配置(所有节点相同):
server_id = 1 # 每个节点必须不同(node2设为2,node3设为3)gtid_mode = ONenforce_gtid_consistency = ONbinlog_checksum = NONElog_bin = binloglog_slave_updates = ONbinlog_format = ROWmaster_info_repository = TABLErelay_log_info_repository = TABLEtransaction_write_set_extraction = XXHASH64loose-group_replication_group_name = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"loose-group_replication_start_on_boot = OFFloose-group_replication_local_address = "192.168.1.101:33061" # 每个节点对应自己的IPloose-group_replication_group_seeds = "192.168.1.101:33061,192.168.1.102:33061,192.168.1.103:33061"loose-group_replication_bootstrap_group = OFFloose-group_replication_single_primary_mode = OFF # 启用多主模式
修改完成后,重启 MySQL:
sudo systemctl restart mysql
首先在 db-node1 上创建复制用户并安装 Group Replication 插件:
sudo mysql -u root-- 在 MySQL 命令行中执行:SET SQL_LOG_BIN=0;CREATE USER 'repl'@'%' IDENTIFIED BY 'StrongPassword123!';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';FLUSH PRIVILEGES;SET SQL_LOG_BIN=1;INSTALL PLUGIN group_replication SONAME 'group_replication.so';CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='StrongPassword123!' FOR CHANNEL 'group_replication_recovery';SET GLOBAL group_replication_bootstrap_group=ON;START GROUP_REPLICATION;SET GLOBAL group_replication_bootstrap_group=OFF;
然后在 db-node2 和 db-node3 上执行(不设置 bootstrap):
sudo mysql -u root-- 创建用户(可选,若已同步则跳过)INSTALL PLUGIN group_replication SONAME 'group_replication.so';CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='StrongPassword123!' FOR CHANNEL 'group_replication_recovery';START GROUP_REPLICATION;
在任意节点执行以下 SQL 查询成员状态:
SELECT * FROM performance_schema.replication_group_members;
如果看到三个节点状态均为 ONLINE,说明你的 高可用数据库 集群已成功部署!
通过本教程,你已经掌握了在 Ubuntu 环境下搭建 分布式数据库 集群的基本方法。这种架构不仅提升了数据库的读写性能,还实现了自动故障转移,极大增强了系统的稳定性。
后续你可以结合 HAProxy 做负载均衡,或使用 Keepalived 实现 VIP 漂移,进一步优化你的 Ubuntu集群 数据库架构。
希望这篇面向初学者的指南能帮助你顺利迈出构建企业级数据库系统的第一步!
本文由主机测评网于2025-12-03发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025122236.html