MySQL 一键安装脚本
支持 MySQL 企业版/专业版 5.7 / 8.0 / 8.4 / 9.0,四种部署模式,覆盖企业级 HA 场景
生产级 MySQL 安装脚本,支持单机、主从复制、MGR 集群、企业级 HA 四种部署模式。自动识别操作系统、调优内存参数、配置 Systemd 服务,开箱即用。
核心功能
一键安装
单条命令完成 MySQL 安装、初始化、服务配置全流程
主从复制
支持异步和半同步主从复制,自动配置 GTID 和 Binlog
MGR 集群
支持 MySQL Group Replication,内置高可用集群部署
多系统支持
兼容 RHEL/CentOS/Rocky/Alma/openEuler/麒麟/UOS/Ubuntu/Debian
多种安装方式
支持二进制包、yum、apt 三种安装方式,满足不同场景需求
自动参数调优
根据服务器内存自动计算 InnoDB Buffer Pool、连接数等关键参数
GTID 与半同步
默认启用 GTID 模式,支持半同步复制,简化主从切换和故障恢复操作
企业级 HA
支持 MHA、Orchestrator、Xenon 等第三方 HA 工具,提供自动故障转移、VIP 漂移、读写分离等企业级功能
四种部署模式
覆盖从开发测试到企业级高可用的全部场景
单机模式
适用于开发测试、小型应用场景。安装单个 MySQL 实例,自动完成初始化和参数调优,快速上手。
主从复制
适用于读写分离、数据备份场景。支持一主多从,可选异步或半同步复制,基于 GTID 管理。
MGR 集群
适用于高可用生产环境。MySQL Group Replication 提供内置的故障自动检测和成员管理,无需外部 HA 工具。
HA 高可用集群
适用于企业级生产环境。支持 MHA、Orchestrator、Xenon 等第三方 HA 工具,提供自动故障转移、VIP 漂移等高级功能。
兼容性矩阵
覆盖国内外主流 Linux 发行版
| 类别 | 操作系统 | 支持版本 |
|---|---|---|
| 企业级 Linux | RHEL | 789 |
| CentOS | 78 | |
| Rocky Linux | 89 | |
| AlmaLinux | 89 | |
| Oracle Linux | 789 | |
| 国产操作系统 | openEuler | 20.0322.03 |
| Kylin (麒麟) | V10 | |
| UOS (统信) | 20 | |
| Debian 系 | Ubuntu | 20.0422.0424.04 |
| Debian | 101112 |
安装示例
按场景选择最接近你环境的命令,确认前置条件后复制使用
最小化安装
新手约 5 分钟快速验证脚本和系统依赖,适合开发或临时测试
1bash MySQLShellInstall --mysql-version 8.0生产环境
推荐标准约 10 分钟单机生产环境,开启 binlog 并显式规划数据目录和核心参数
1bash MySQLShellInstall \2 --mysql-version 8.0 \3 --root-password 'YourPass123!' \4 --datadir /data/mysql \5 --basedir /usr/local/mysql \6 --charset utf8mb4 \7 --innodb-buffer-pool-size 4G \8 --max-connections 1000 \9 --binlog ON \10 --binlog-format ROW前置准备 (3)
- 独立数据盘或数据目录容量已确认
- root 密码按生产策略生成
- 字符集、连接数、buffer pool 已按业务预估
安装完成后 (2)
- 确认 mysqld 服务 active 且端口监听正常
- 检查 my.cnf、binlog 和数据目录权限
参数参考手册
脚本支持的所有命令行参数说明
| 参数 | 描述 | 默认值 | 适用模式 |
|---|---|---|---|
| --mysql-version | MySQL 版本 | 8.0 | 单机 |
| --port | 端口 | 3306 | 单机 |
| --datadir | 数据目录 | /var/lib/mysql | 单机 |
| --basedir | 安装目录 | /usr/local/mysql | 单机 |
| --socket | Socket 文件路径 | /var/lib/mysql/mysql.sock | 单机 |
| --root-password | MySQL Root 密码 | — | 单机 |
| --mysql-user | 应用账号 | — | 单机 |
| --mysql-password | 应用账号密码 | — | 单机 |
| --charset | 字符集 | utf8mb4 | 单机 |
| --collation | 排序规则 | utf8mb4_unicode_ci | 单机 |
| --innodb-buffer-pool-size | InnoDB Buffer Pool 大小 | 1G | 单机 |
| --max-connections | 最大连接数 | 500 | 单机 |
| --binlog | 开启 Binlog | ON | 单机 |
| --binlog-format | Binlog 格式 | ROW | 单机 |
| --sql-mode | SQL Mode | — | 单机 |
| --install-method | 安装方式 | binary | 单机 |
| --repo-mode | 软件源模式 | local | 单机 |
| --systemd | 配置 Systemd 服务 | Y | 单机 |
| --firewall | 自动配置防火墙 | Y | 单机 |
| --optimize | 自动内存调优 | Y | 单机 |
| --mount-path | 挂载目录 | — | 单机 |
| --force-clean | 强制清理旧环境 | N | 单机 |
| --repl-mode | 复制模式 | semi-sync | 主从 |
| --master-ip | 主库 IP 或 IP:PORT | — | 主从 |
| --slave-ip | 从库 IP 或 IP:PORT | — | 主从 |
| --repl-user | 复制账号 | repl | 主从 |
| --repl-password | 复制账号密码 | — | 主从 |
| --server-id | Server ID | 1 | 主从 |
| --ssh-port | SSH 端口(远程编排) | 22 | 主从 |
| --ssh-user | SSH 用户 | root | 主从 |
| --ssh-password | SSH 密码 | — | 主从 |
| --repl-local-only | 仅配置本机复制 | N | 主从 |
| --mgr-mode | MGR 模式 | single-primary | MGR |
| --mgr-nodes | MGR 节点列表(IP 或 IP:PORT) | — | MGR |
| --mgr-port | MGR 通信端口(单机多实例自动派生) | 33061 | MGR |
| --mgr-seeds | MGR 种子节点 | — | MGR |
| --mgr-group-name | MGR Group UUID | — | MGR |
| --mgr-user | MGR 复制账号 | repl | MGR |
| --mgr-password | MGR 复制账号密码 | — | MGR |
| --router | 安装 MySQL Router | N | MGR |
| --mgr-single-primary | 强制单主模式 | N | MGR |
| --mgr-multi-primary | 强制多主模式 | N | MGR |
| --mgr-local-only | 仅配置本机 MGR | N | MGR |
显示 43 / 43 条参数
已验证安装场景
以下场景均在物理环境中完成真实安装测试,全部通过验证。测试环境:RHEL 8.10 / Oracle Linux 8.10,ESXi 8C/8GB VM。
| ID | 测试场景 | 证据 | 模式 | 版本 | 安装方式 | 节点 | 耗时 | 状态 |
|---|---|---|---|---|---|---|---|---|
| M-1 | 单机 binary 安装 (8.4) | 脚本实测 | 单机 | 8.4 | binary | 1 | 71s | |
| M-2 | 单机 binary 安装 (5.7) | 脚本实测 | 单机 | 5.7 | binary | 1 | 76s | |
| M-13 | 单机 yum 安装 (8.4) | 脚本实测 | 单机 | 8.4 | yum | 1 | 431s | |
| M-14 | 单机 yum 安装 (5.7, EL8 自动回退 binary) | 脚本实测 | 单机 | 5.7 | yum | 1 | 3935s | |
| M-15 | 单机 binary 安装 (9.0) | 脚本实测 | 单机 | 9.0 | binary | 1 | 1202s | |
| M-20 | 单机 binary 安装 (8.0) | 脚本实测 | 单机 | 8.0 | binary | 1 | 1075s | |
| M-24 | 单机 binary + repo-mode local (ISO 本地源) | 脚本实测 | 单机 | 8.4 | binary | 1 | 1031s | |
| M-8 | 同版本双实例 (3306+3307) | 脚本实测 | 单机 | 8.4 | binary | 1 | — | |
| M-9 | 跨版本双实例 (8.4:3306 + 5.7:3307) | 脚本实测 | 单机 | 8.4+5.7 | binary | 1 | — | |
| M-3 | 半同步主从复制 (8.4) | 脚本实测 | 主从/复制 | 8.4 | binary | 2 | 161s | |
| M-4 | 半同步主从复制 (5.7) | 脚本实测 | 主从/复制 | 5.7 | binary | 2 | 195s | |
| M-16 | 异步主从复制 (8.4) | 脚本实测 | 主从/复制 | 8.4 | binary | 2 | 1906s | |
| M-17 | 异步主从复制 (5.7) | 脚本实测 | 主从/复制 | 5.7 | binary | 2 | 368s | |
| M-19 | yum 安装 + 半同步主从 (8.4) | 脚本实测 | 主从/复制 | 8.4 | yum | 2 | 768s | |
| M-21 | 一主两从 半同步复制 (8.4) | 脚本实测 | 主从/复制 | 8.4 | binary | 3 | 348s | |
| M-10 | 单机双实例主从 (3306 主 + 3307 从) | 脚本实测 | 主从/复制 | 8.4 | binary | 1 | 337s | |
| M-11 | 单机三实例 MGR 单主 (3306+3307+3308) | 脚本实测 | 集群 | 8.4 | binary | 1 | 239s | |
| M-12 | 单机三实例 MGR 多主 (3306+3307+3308) | 脚本实测 | 集群 | 8.4 | binary | 1 | 239s | |
| M-5 | MGR 单主模式 三节点 | 脚本实测 | 集群 | 8.4 | binary | 3 | 235s | |
| M-6 | MGR 多主模式 三节点 | 脚本实测 | 集群 | 8.4 | binary | 3 | 204s | |
| M-7 | MGR 单主 + MySQL Router 读写分离 | 脚本实测 | 集群 | 8.4 | binary | 3 | 293s | |
| M-18 | MGR 多主 + MySQL Router 读写分离 | 脚本实测 | 集群 | 8.4 | binary | 3 | — |
所有测试在 RHEL 8.10 / Oracle Linux 8.10 (x86_64) 环境下执行,详见测试计划文档
常见问题
该选哪种安装方式?
生产环境推荐使用二进制安装(binary),版本固定、不依赖系统包管理器,便于管理和迁移。yum/apt 方式更便捷,适合测试环境或对版本要求不严格的场景。
最低系统配置要求是什么?
最低要求:2GB 内存、10GB 可用磁盘空间、Bash 4.0 以上版本、root 或具有 sudo 权限的账号。生产环境建议 8GB 以上内存。
能在已有 MySQL 的服务器上运行吗?
不建议。脚本设计用于全新安装,在已有 MySQL 实例的服务器上运行可能导致配置冲突或数据损坏。请在干净的系统上使用,或先完整卸载现有 MySQL。
主从复制和 MGR 有什么区别?
主从复制是传统的异步/半同步复制方案,配置简单,适合读写分离和数据备份场景,需要手动处理主库故障切换。MGR(Group Replication)是 MySQL 内置的分布式高可用集群,支持自动故障检测和成员管理,适合对可用性要求高的生产环境。
支持离线安装吗?
支持。将对应版本的 MySQL 二进制压缩包(.tar.gz)下载后放置在脚本同目录下,脚本会自动识别并跳过在线下载步骤,完成离线安装。
安装后如何升级 MySQL 版本?
脚本本身不提供版本升级功能。如需升级,建议参考 MySQL 官方文档进行原地升级(in-place upgrade):先备份数据,停止服务,替换二进制包,再执行 mysql_upgrade 完成升级。
Oracle 安装脚本
同系列 Oracle 数据库一键安装脚本,支持 19c / 21c
达梦安装脚本
达梦 DM8 数据库一键安装脚本,支持国产操作系统
PostgreSQL 安装脚本
同系列 PostgreSQL 数据库一键安装脚本,支持 13 / 14 / 15 / 16 / 17