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

整体架构说明
本教程采用以下组件构建高可用架构:
MySQL 主从复制:实现数据同步,主库写入,从库只读备份 HAProxy:作为数据库代理,实现读写分离与负载均衡 Keepalived:提供虚拟 IP(VIP),实现故障自动切换我们将使用两台 Ubuntu 服务器(db1 和 db2)分别部署 MySQL,并配置主从;再用另外两台服务器(或复用)部署 HAProxy + Keepalived,对外提供统一 VIP 访问入口。
第一步:配置 MySQL 主从复制
假设你已有两台 Ubuntu 22.04 服务器,IP 分别为:
主库(Master):192.168.1.10 从库(Slave):192.168.1.111. 在主库配置 MySQL
编辑 MySQL 配置文件:
在 [mysqld] 段落下添加或修改以下内容: 重启 MySQL 并创建复制用户: 记下 同样编辑配置文件,设置 server-id 为 2: 重启 MySQL,然后执行同步命令(替换为你自己的主库信息): 确认 在一台新服务器(如 192.168.1.20)上安装 HAProxy: 编辑配置文件 这里我们将主库设为主节点,从库设为备用(backup),仅在主库故障时接管。如果你希望读写分离,可配置多个监听端口。 重启 HAProxy: 为了防止单点故障,我们部署 Keepalived 提供虚拟 IP(VIP)。准备两台服务器(可以是 HAProxy 所在机器),IP 为: 在两台机器上安装 Keepalived: 启动 Keepalived: 现在,客户端只需连接 你可以通过以下方式测试: 通过本教程,你已成功搭建了一套基于 Ubuntu数据库高可用 的完整解决方案。该方案结合了 MySQL主从复制、HAProxy负载均衡 与 Keepalived高可用 技术,具备自动故障转移能力,适合中小型企业生产环境使用。 建议定期测试故障切换流程,并做好监控告警(如 Prometheus + Grafana),以确保系统长期稳定运行。 —— 你的高可用之旅,从此刻开始 ——sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf[mysqld]server-id = 1log-bin = mysql-binbind-address = 0.0.0.0sudo 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
的值,稍后从库要用。2. 在从库配置 MySQL
[mysqld]server-id = 2bind-address = 0.0.0.0mysql -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\GSlave_IO_Running
和 Slave_SQL_Running
均为 Yes,表示主从同步成功。第二步:部署 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 backupsudo systemctl restart haproxy第三步:使用 Keepalived 实现 VIP 高可用
sudo apt install keepalived -y主节点配置(192.168.1.20)
sudo 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 }}备节点配置(192.168.1.21)
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 }}sudo systemctl enable --now keepalived192.168.1.100:3306
即可访问数据库。当主 HAProxy 宕机,VIP 会自动漂移到备机,实现无缝切换。验证高可用效果
ip addr show
查看 VIP 是否存在总结
