快速开始
MySQLShellInstall 是一款 MySQL 一键自动化安装脚本,支持 MySQL 5.7 至 9.x 全版本。脚本自动完成操作系统参数优化、MySQL 二进制解压安装、my.cnf 智能生成、主从复制配置、高可用组件部署及 Systemd 服务创建全流程。支持七种部署架构:单机、主从半同步、MGR、InnoDB Cluster、MHA、PXC、Orchestrator。
三步安装
- 上传软件包 - 将
MySQL.sh脚本和 MySQL tar.gz 安装包上传至服务器/soft目录 - 配置参数 - 使用 命令生成器 或手动拼接安装参数
- 执行安装 - 在
/soft目录下以root用户执行
环境准备
目录结构
系统要求
- 支持的操作系统:CentOS 6/7/8、RHEL 6/7/8/9、Rocky Linux 8/9、AlmaLinux 8/9
- 内存 >= 1GB(生产环境建议 >= 8GB)
- 磁盘空间:MySQL 安装约 2GB,数据目录根据业务需求规划
安装介质
脚本支持 MySQL 5.7 至 9.x 全版本安装包。将 .tar.gz 文件放置在 /soft 目录下,脚本启动后自动识别版本。
| MySQL 版本 | 安装包文件名示例 | 特性说明 |
|---|---|---|
| 9.x | mysql-9.1.0-linux-glibc2.17-x86_64.tar.gz | Innovation Release, 移除 innodb_change_buffer_max_size |
| 8.4 LTS | mysql-8.4.5-linux-glibc2.17-x86_64.tar.gz | LTS 长期支持, 移除 master_info_repository |
| 8.0 | mysql-8.0.42-linux-glibc2.17-x86_64.tar.gz | 默认 utf8mb4, 8.0.26+ replica 新命名 |
| 5.7 | mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz | query_cache, expire_logs_days |
工作原理
执行流程
- 参数校验 - 验证输入参数、集群节点数校验、IP 格式检测
- 环境检测 - OS 类型/版本、CPU 架构、内存大小
- OS 配置 - 内核参数(vm.swappiness=0)、limits、NUMA、SELinux/防火墙
- 依赖安装 - numactl, libaio, sshpass, expect 等
- 用户创建 - mysql 用户,配置环境变量
- MySQL 解压 - tar.gz 解压到安装目录
- my.cnf 生成 - 根据硬件和版本自动生成(InnoDB 参数智能调优)
- Systemd 服务 - 5.7 用 forking, 8.0+ 用 notify
- 初始化数据库 - mysqld --initialize
- 启动与安全配置 - 修改 root 密码、创建复制用户
- 集群部署 - SSH 分发、从节点初始化、复制配置
- 备份脚本 - xtrabackup 全量/增量备份脚本生成
单机安装 (si)
单机模式是最简单的部署方式,适用于开发测试及中小型业务场景。
主从复制 (ms)
一主多从半同步复制架构,GTID + 并行复制,适用于读写分离场景。
MGR 组复制 (mgr)
MySQL 原生组复制,基于 Paxos 协议,自动选主。建议 3 或 5 个节点(奇数)。
InnoDB Cluster (ic)
MGR + MySQL Router + MySQL Shell 完整高可用方案,自动故障转移。建议 3+ 节点。
MHA 高可用 (mha)
MHA Manager + 主从 + VIP 漂移,秒级故障切换,经典生产架构。需要额外指定 VIP 和 MHA Manager 节点。
PXC 集群 (pxc)
基于 Galera 的 Percona XtraDB Cluster,同步多主复制,所有节点可读写。建议 3+ 节点(奇数)。
Orchestrator (orch)
主从 + Orchestrator 拓扑管理,自动故障检测与切换,Web 可视化管理。
通用参数
| 参数 | 说明 | 默认值 |
|---|---|---|
| -h, --help | 显示帮助信息 | - |
| --version | 显示脚本版本号 | - |
| -debug | 开启调试模式,输出详细日志 | N |
| -install_mode | 安装模式:si / ms / mgr / ic / mha / pxc / orch | si |
| -lf | [必填] 公网 IP 的网卡名称 | - |
| -n | 主机名前缀(集群模式追加 IP 后两段) | mysqldb |
| -ou | 系统用户名称 | mysql |
| -op | 系统 mysql 用户密码 | mysql |
| -d | MySQL 软件安装根目录 | /mysql |
| -ord | MySQL 数据文件目录 | /mysql/data |
| -dp | MySQL 数据库 root 密码 | MySQL@2024 |
| -pt | MySQL 数据库监听端口 | 3306 |
| -ops | 服务器 SSH 端口 | 22 |
| -iso | 配置本地 YUM 源 | N |
| -m | 仅配置操作系统(不安装 MySQL) | N |
| -ud | 安装到 MySQL 软件结束(不初始化) | N |
| -gui | 是否安装系统图形界面 | N |
| -opd | 安装完成后是否优化 MySQL 数据库 | N |
集群参数
以下参数在集群模式(ms/mgr/ic/mha/pxc/orch)下使用:
| 参数 | 说明 | 默认值 |
|---|---|---|
| -ri | [必填] 所有节点公网 IP(逗号分隔),第一个为主节点 | - |
| -rp | [必填] 系统 root 用户密码,所有节点必须一致 | - |
-ri 第一个 IP 为主节点。集群主机名自动使用 IP 后两段(如 10.0.1.100 对应 mysqldb1100)。MGR/IC/PXC 建议奇数节点。模式专属参数
| 参数 | 适用模式 | 说明 | 默认值 |
|---|---|---|---|
| -cn | ic, pxc | 集群名称 | ic: mysqlCluster / pxc: pxc-cluster |
| -vip | mha | [必填] VIP 地址,用于故障切换 | - |
| -mha_mgr | mha | [必填] MHA Manager 节点 IP 地址 | - |
| -orch_ip | orch | [必填] Orchestrator 节点 IP 地址 | - |
故障排查
MySQL 启动失败
- 检查
my.cnf中是否存在当前版本不支持的参数(如 8.4+ 无master_info_repository) - 确认数据目录权限属于 mysql 用户:
chown -R mysql:mysql /mysql - 查看错误日志:
cat /mysql/logs/error.log
主从复制异常
- 确认
server_id在所有节点间唯一 - 检查 GTID 是否开启:
SHOW GLOBAL VARIABLES LIKE 'gtid_mode'; - 检查半同步状态:
SHOW STATUS LIKE 'Rpl_semi_sync%';
MGR 节点无法加入
- 确认
group_replication_group_seeds包含所有节点 - 检查 33061 端口在所有节点间可达
- 确认
group_replication_ip_allowlist配置正确
MHA 切换失败
- 检查 SSH 互信是否配置成功
- 确认 VIP 绑定的网卡名称与
-lf参数一致 - 查看 MHA 日志:
cat /var/log/masterha/app1/manager.log
常见问题
Q: 支持哪些 MySQL 版本?
支持 MySQL 5.7 至 9.x 全版本。脚本会根据版本自动调整 my.cnf 参数(如 5.7 用 expire_logs_days,8.0+ 用 binlog_expire_logs_seconds)。
Q: 单机模式需要指定 -ri 吗?
不需要。单机模式(si)仅需指定 -lf 网卡名称,其他参数均有默认值。
Q: my.cnf 如何生成?
脚本根据服务器物理内存和 CPU 核数自动计算 InnoDB buffer pool、redo log、binlog 等关键参数。同时根据 MySQL 版本自动启用/禁用版本特定参数。
Q: MHA 和 Orchestrator 有什么区别?
MHA 是经典的主从高可用方案,通过 VIP 漂移实现切换;Orchestrator 提供 Web UI 拓扑管理和自动故障检测,适合复杂拓扑。两者不能同时使用。
Q: PXC 和 MGR 如何选择?
PXC 基于 Galera 协议,支持真正的多主写入,强一致性;MGR 是 MySQL 原生方案,单主模式下性能更优。金融等强一致场景推荐 PXC,一般业务推荐 MGR/InnoDB Cluster。
Q: 是否支持离线安装?
支持。将 MySQL 安装包和脚本上传至服务器 /soft 目录即可。系统依赖可通过 -iso Y 使用本地 YUM 源安装。
更新日志
v1.0.0 (2026-04)
- 初始版本发布
- 支持七种部署架构:si / ms / mgr / ic / mha / pxc / orch
- MySQL 5.7 ~ 9.x 全版本支持
- 版本自适应 my.cnf 参数配置
- 系统深度优化:内核参数 / limits / NUMA / I/O 调度器
- InnoDB 参数智能调优(buffer_pool / redo_log / undo)
- 半同步复制(semisync_source/replica 版本自适应)
- MGR 组复制 + InnoDB Cluster + Router 部署
- MHA Manager 部署 + VIP 故障切换脚本
- PXC Galera 集群部署
- Orchestrator 拓扑管理部署
- Systemd 服务(5.7: forking, 8.0+: notify)
- xtrabackup 全量/增量备份脚本
- IP 格式校验 + 重复检测