在现代企业应用中,Ubuntu数据库高可用是保障业务连续性的关键。一旦数据库宕机,可能导致服务中断、数据丢失甚至客户流失。本文将手把手教你如何在 Ubuntu 系统上搭建一套稳定可靠的数据库高可用方案,即使你是 Linux 新手也能轻松上手!
数据库高可用(High Availability, HA)是指通过冗余部署和自动故障转移机制,确保数据库服务在单点故障发生时仍能持续对外提供服务。常见的实现方式包括主从复制、集群、负载均衡等。

本教程采用以下组件构建高可用架构:
我们将使用两台 Ubuntu 服务器(db1 和 db2)分别部署 MySQL,并配置主从;再用另外两台服务器(或复用)部署 HAProxy + Keepalived,对外提供统一 VIP 访问入口。
假设你已有两台 Ubuntu 22.04 服务器,IP 分别为:
编辑 MySQL 配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf在 [mysqld] 段落下添加或修改以下内容:
[mysqld]server-id = 1log-bin = mysql-binbind-address = 0.0.0.0重启 MySQL 并创建复制用户:
sudo systemctl restart mysqlmysql -u root -p-- 在 MySQL 命令行中执行CREATE USER 'repl'@'%' IDENTIFIED BY 'StrongPassword123!';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';FLUSH PRIVILEGES;SHOW MASTER STATUS;记下 File 和 Position 的值,稍后从库要用。
同样编辑配置文件,设置 server-id 为 2:
[mysqld]server-id = 2bind-address = 0.0.0.0重启 MySQL,然后执行同步命令(替换为你自己的主库信息):
mysql -u root -pCHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_USER='repl', MASTER_PASSWORD='StrongPassword123!', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;START SLAVE;SHOW SLAVE STATUS\G确认 Slave_IO_Running 和 Slave_SQL_Running 均为 Yes,表示主从同步成功。
在一台新服务器(如 192.168.1.20)上安装 HAProxy:
sudo apt updatesudo apt install haproxy -y编辑配置文件 /etc/haproxy/haproxy.cfg,在末尾添加:
listen mysql-cluster bind *:3306 mode tcp balance leastconn server db1 192.168.1.10:3306 check server db2 192.168.1.11:3306 check backup这里我们将主库设为主节点,从库设为备用(backup),仅在主库故障时接管。如果你希望读写分离,可配置多个监听端口。
重启 HAProxy:
sudo systemctl restart haproxy为了防止单点故障,我们部署 Keepalived 提供虚拟 IP(VIP)。准备两台服务器(可以是 HAProxy 所在机器),IP 为:
在两台机器上安装 Keepalived:
sudo apt install keepalived -ysudo nano /etc/keepalived/keepalived.confvrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass yourpassword } virtual_ipaddress { 192.168.1.100/24 }}vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass yourpassword } virtual_ipaddress { 192.168.1.100/24 }}启动 Keepalived:
sudo systemctl enable --now keepalived现在,客户端只需连接 192.168.1.100:3306 即可访问数据库。当主 HAProxy 宕机,VIP 会自动漂移到备机,实现无缝切换。
你可以通过以下方式测试:
ip addr show 查看 VIP 是否存在通过本教程,你已成功搭建了一套基于 Ubuntu数据库高可用 的完整解决方案。该方案结合了 MySQL主从复制、HAProxy负载均衡 与 Keepalived高可用 技术,具备自动故障转移能力,适合中小型企业生产环境使用。
建议定期测试故障切换流程,并做好监控告警(如 Prometheus + Grafana),以确保系统长期稳定运行。
—— 你的高可用之旅,从此刻开始 ——
本文由主机测评网于2025-12-04发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025122797.html