极速、隔离、安全的MySQL 自动化安装与集群编排
aim.sh 使用 Oracle 官方通用二进制包,在 Linux 主机上自动化安装相互隔离的 MySQL 实例。 全面支持单机(Standalone)、主从复制(GTID Replica)以及 MySQL 8.0/8.4 单主模式 MGR 集群,并配备现代化 Web 控制台。
# 下载独立生命周期脚本并赋予执行权限
wget -O aim.sh https://raw.githubusercontent.com/aimdotsh/aim/master/aim.sh
chmod +x aim.sh
# 立即快速单机部署 MySQL 8.4.5
sudo ./aim.sh -v 8.4.5 -p 3306 --role standalone为什么选择 AIM 方案?
兼顾轻量脚本运维的高效自由,与生产环境企业级安全合规标准。
多拓扑自动化支持
内置单机 (Standalone)、主库 (Source)、从库 (Replica) 以及三节点 MGR (Group Replication) 的完整配置闭环,自适应高版本复制语法。
非侵入多实例隔离
不篡改全局 /etc/my.cnf,不修改全局 limits.conf。多实例独立端口、独立目录、独立 systemd 服务,互不影响。
官方通用二进制分发
直接解压 Oracle 官方 Tar 包安装,规避 RPM/DEB 依赖冲突与 musl 系统问题。支持本地离线 media/ 预放安装包,适合无外网隔离内网。
生产级安全与 SELinux 适配
在启用 SELinux 的 RHEL 系列系统上,脚本自动为自定义数据、日志目录及非默认端口配置持久上下文。凭证绝不明文打进历史记录。
轻量 Web 部署控制台
Go 单体 + Vue 3 + SQLite 架构。无常驻 Agent,通过 SSH 受限执行器调用,提供主机硬件探测、16 MiB 分块断点上传与图形化编排。
完整生命周期管理
单个脚本兼顾安装、状态检查、重启重新初始化与无残留安全卸载(支持 --dry-run 预演),运维省心可控。
MySQL 版本与架构支持矩阵
覆盖主流生产版本,自动适配 5.6/5.7 到 8.0/8.4 的参数变迁与初始化机制。
| MySQL 系列 | x86_64 | ARM64 (aarch64) | i686 | 初始化机制 | 主从复制命令 |
|---|---|---|---|---|---|
| MySQL 8.4.x LTS | ✅ 支持 | ✅ 支持 | 官网发布为准 | mysqld --initialize-insecure | CHANGE REPLICATION SOURCE |
| MySQL 8.0.x | ✅ 支持 | ✅ 支持 | ✅ 支持 | mysqld --initialize-insecure | 8.0.23+ 自动适配新命令 |
| MySQL 5.7.x | ✅ 支持 | 官方无构建 | 官方无构建 | >=5.7.6 使用 initialize | CHANGE MASTER TO |
| MySQL 5.6.x | ✅ 支持 | 官方无构建 | 官方无构建 | mysql_install_db | CHANGE MASTER TO |
常见拓扑部署示例
全部基于标准命令行,支持精确三段版本号与端口传参。
# 1. 在主机 A (10.0.0.11) 安装并启动主库,自动创建复制账号
sudo ./aim.sh -v 8.0.42 -p 3306 --role source \
--replica-host 10.0.0.12 --repl-password 'YourReplPassword123!'
# 2. 在主机 B (10.0.0.12) 安装从库,并自动连接主库开启复制
sudo ./aim.sh -v 8.0.42 -p 3306 --role replica \
--source-host 10.0.0.11 --source-port 3306 \
--source-user aim_repl --source-password 'YourReplPassword123!'# 引导节点 (Node 1 - 10.0.0.10) 初始化集群引导
sudo ./aim.sh -v 8.0.42 -p 3306 --role mgr --server-id 1001 \
--mgr-local-address 10.0.0.10 \
--mgr-seeds '10.0.0.10:33061,10.0.0.11:33061,10.0.0.12:33061' \
--mgr-group-name 'b32b3ad1-031b-4c53-bfd4-1ea75424021a' \
--mgr-allowlist '10.0.0.0/24' --mgr-bootstrap
# 其他成员节点 (Node 2 / Node 3) 加入集群
sudo ./aim.sh -v 8.0.42 -p 3306 --role mgr --server-id 1002 \
--mgr-local-address 10.0.0.11 \
--mgr-seeds '10.0.0.10:33061,10.0.0.11:33061,10.0.0.12:33061' \
--mgr-group-name 'b32b3ad1-031b-4c53-bfd4-1ea75424021a' \
--mgr-allowlist '10.0.0.0/24'AIM Web 部署控制台
针对不想记忆复杂命令行参数的企业与运维人员,AIM 提供了使用 Go 单体应用 + Vue 3 + SQLite 实现的内网 Web 控制台。
- ✓自动探测:登记主机后自动感知 CPU、glibc、IPv4、磁盘、内存与端口冲突。
- ✓大包分块上传:以 16 MiB 分块断点上传最大 2 GiB 安装包并严格比对 SHA-256。
- ✓可视化编排:网页向导一键部署单机、主库从库以及三节点 MGR。
- ✓安全保险箱:AES-256-GCM 加密存储,SSH 指纹防欺骗,本地 RBAC 与全流程审计。
cp .env.sample .env
mkdir -p secrets
openssl rand -base64 32 > secrets/aim_master_key
chmod 600 secrets/aim_master_key
# 依据需要修改 .env 中的初始管理员密码
docker compose up -d --build
# 启动后访问控制台
https://<控制台IP>:8443立即体验 AIM 自动化部署
欢迎前往 GitHub 参与贡献、提交 PR 或提出 Issue 反馈。