Linux SQLAdmin集群部署方法
小樊
36
2025-12-27 15:15:43
Linux 上 SQLAdmin 集群部署方法
一 架构与前置准备
架构认知:SQLAdmin 通常是基于 Web 的 MySQL 管理工具,所谓“集群部署”是指先搭建 MySQL 高可用/复制集群 ,再把多个 SQLAdmin 实例放在 Nginx/HAProxy 之后做负载均衡与高可用,统一对外提供管理入口。常见 MySQL 集群形态包括:主从复制 、Galera/PXC 、InnoDB Cluster 、NDB Cluster ;SQLAdmin 连接侧可使用 ProxySQL/MySQL Router 实现读写分离与故障转移。
节点规划:建议至少 3 台 (2 台数据库节点 + 1 台 SQLAdmin/负载均衡节点),生产环境可扩展为 3–5 台 数据库节点与 2–3 台 SQLAdmin/负载均衡节点。
系统与网络:统一 Linux 发行版与内核版本 ,关闭 SELinux 或配置合规策略;开放必要端口(如 3306/33060/8080/8443/22 );配置 NTP 时间同步;数据库与管理网分离;准备 VIP/DNS 作为统一访问入口。
账号与权限:为复制创建专用账号(如 replicator ),为监控/管理创建只读账号;限制来源网段,强制 TLS/SSL 连接。
二 部署 MySQL 高可用集群
方案A 主从复制 + Keepalived(入门与通用)
主节点 my.cnf:设置唯一 server-id=1 ,开启 log_bin ,创建复制用户并授权;记录 SHOW MASTER STATUS 的 File/Position。
从节点 my.cnf:设置唯一 server-id=2 ,开启 relay_log ,必要时开启 log_bin ;执行 CHANGE MASTER TO … 指向主节点,启动复制并检查 Slave_IO_Running/Slave_SQL_Running=Yes 。
高可用:在两台数据库节点部署 Keepalived ,配置 VRRP 与 virtual_ipaddress(VIP) ,主节点 priority=100 ,备节点 priority=90 ,实现 VIP 漂移 与故障自动切换。
方案B Galera/PXC(多主同步)
所有节点安装 Galera 兼容发行版(如 Percona XtraDB Cluster/MariaDB Galera ),配置 wsrep_cluster_name/address/node_address 等参数;首节点以 –wsrep-new-cluster 引导,其余节点加入;SQLAdmin 通过 VIP/负载均衡 指向全部节点。
方案C InnoDB Cluster(官方组复制)
安装 Group Replication 插件,使用 MySQL Shell(mysqlsh) 执行 dba.createCluster() 创建集群,自动故障转移与弹性扩缩;SQLAdmin 指向集群任一存活节点或 VIP 。
方案D NDB Cluster(分布式内存集群)
部署 管理节点(ndb_mgmd)/数据节点(ndbd)/SQL 节点(mysqld) ,在 config.ini 定义拓扑;SQLAdmin 通过 VIP 指向多个 SQL 节点。
三 部署 SQLAdmin 多实例与负载均衡
安装 SQLAdmin(示例)
Ubuntu/Debian:导入 APT GPG Key 与仓库后安装
wget -qO - https://packages.sqladmin.io/debian/public.key | sudo apt-key add -
echo “deb https://packages.sqladmin.io/debian/ $(lsb_release -cs) main” | sudo tee /etc/apt/sources.list.d/sqladmin.list
sudo apt update && sudo apt install -y sqladmin
CentOS/RHEL:下载官方 RPM/压缩包 安装,或配置 YUM 源后安装;安装完成后按需修改 /etc/sqladmin/ 下配置文件(如 config.yaml )。
多实例与反向代理
在 2–3 台 管理节点部署 SQLAdmin(相同配置或共享存储),统一监听 8080/8443 。
Nginx 示例(HTTP,生产建议启用 HTTPS/TLS 与 健康检查 ):
upstream sqladmin_backend { server 10.0.0.11:8080; server 10.0.0.12:8080; keepalive 32; }
server { listen 80; server_name sqladmin.example.com; location / { proxy_pass http://sqladmin_backend; proxy_http_version 1.1; proxy_set_header Connection “”; } }
连接指向
读写分离:SQLAdmin 连接 ProxySQL/MySQL Router 的读写端口(写主、读从);
多主/集群:SQLAdmin 连接 VIP 或所有节点地址,由中间件/集群保证高可用。
四 验证与运维
功能与高可用验证
MySQL 复制/集群:主从执行 SHOW SLAVE STATUS\G (IO/SQL 均为 Yes );Galera/PXC/InnoDB Cluster 检查 wsrep_cluster_size/status 与 cluster.status() ;NDB 检查 ndb_mgm 节点状态。
VIP 漂移:在数据库主节点停止 mysqld/Keepalived ,验证 VIP 是否漂移到备节点,SQLAdmin 仍可通过 VIP 访问。
SQLAdmin 高可用:停止任一 SQLAdmin 节点,Nginx/HAProxy 应自动剔除故障实例,页面访问不受影响。
监控与日志
监控:采集 MySQL error log、slow query log、复制延迟、连接数、VIP 绑定状态 ;结合 Prometheus/Grafana 与 告警 。
日志:定期查看 /var/log/mysql/error.log 、/var/log/keepalived/keepalived.log 、SQLAdmin 服务日志与 Nginx access/error 日志。
五 安全与最佳实践
最小权限与网络隔离:复制/管理账号仅授予必要权限;数据库与管理网 VLAN/ACL 隔离;云环境使用 安全组 限制来源。
加密与凭据:启用 TLS/SSL 连接(MySQL 与 SQLAdmin 前端);凭据使用 Vault/KMS 或配置文件权限 0600 管理。
备份与恢复:定期 物理/逻辑备份 (如 mysqldump/xtrabackup ),验证恢复演练;保留 至少 7–30 天 备份。
变更与回滚:变更前 备份与灰度 ;变更窗口内可快速回滚到上一个稳定版本或 VIP 回切。
版本与补丁:统一 SQLAdmin/MySQL/中间件 版本;及时应用 安全补丁 与内核更新。