快速开始

MySQLShellInstall 是一款 MySQL 一键自动化安装脚本,支持 MySQL 5.7 至 9.x 全版本。脚本自动完成操作系统参数优化、MySQL 二进制解压安装、my.cnf 智能生成、主从复制配置、高可用组件部署及 Systemd 服务创建全流程。支持七种部署架构:单机、主从半同步、MGR、InnoDB Cluster、MHA、PXC、Orchestrator。

三步安装

  1. 上传软件包 - 将 MySQL.sh 脚本和 MySQL tar.gz 安装包上传至服务器 /soft 目录
  2. 配置参数 - 使用 命令生成器 或手动拼接安装参数
  3. 执行安装 - 在 /soft 目录下以 root 用户执行
注意:脚本必须以 root 用户执行。仅用于新服务器部署,严禁在已运行数据库的主机上执行。

环境准备

目录结构

目录结构
/soft/ MySQL.sh # 安装脚本 mysql-8.0.42-linux-glibc2.17-x86_64.tar.gz # MySQL 安装包

系统要求

安装介质

脚本支持 MySQL 5.7 至 9.x 全版本安装包。将 .tar.gz 文件放置在 /soft 目录下,脚本启动后自动识别版本。

MySQL 版本安装包文件名示例特性说明
9.xmysql-9.1.0-linux-glibc2.17-x86_64.tar.gzInnovation Release, 移除 innodb_change_buffer_max_size
8.4 LTSmysql-8.4.5-linux-glibc2.17-x86_64.tar.gzLTS 长期支持, 移除 master_info_repository
8.0mysql-8.0.42-linux-glibc2.17-x86_64.tar.gz默认 utf8mb4, 8.0.26+ replica 新命名
5.7mysql-5.7.44-linux-glibc2.12-x86_64.tar.gzquery_cache, expire_logs_days

工作原理

执行流程

  1. 参数校验 - 验证输入参数、集群节点数校验、IP 格式检测
  2. 环境检测 - OS 类型/版本、CPU 架构、内存大小
  3. OS 配置 - 内核参数(vm.swappiness=0)、limits、NUMA、SELinux/防火墙
  4. 依赖安装 - numactl, libaio, sshpass, expect 等
  5. 用户创建 - mysql 用户,配置环境变量
  6. MySQL 解压 - tar.gz 解压到安装目录
  7. my.cnf 生成 - 根据硬件和版本自动生成(InnoDB 参数智能调优)
  8. Systemd 服务 - 5.7 用 forking, 8.0+ 用 notify
  9. 初始化数据库 - mysqld --initialize
  10. 启动与安全配置 - 修改 root 密码、创建复制用户
  11. 集群部署 - SSH 分发、从节点初始化、复制配置
  12. 备份脚本 - xtrabackup 全量/增量备份脚本生成

单机安装 (si)

单机模式是最简单的部署方式,适用于开发测试及中小型业务场景。

Shell
sh MySQL.sh \ -install_mode si \ -lf eth0 \ -dp 'MyRootPass' # 自定义 root 密码

主从复制 (ms)

一主多从半同步复制架构,GTID + 并行复制,适用于读写分离场景。

前置条件:所有节点 root 密码必须一致,网络互通,脚本仅在第一个节点(主节点)执行。
Shell
sh MySQL.sh \ -install_mode ms \ -lf eth0 \ -ri 10.0.1.1,10.0.1.2,10.0.1.3 \ -rp 'RootPass123'

MGR 组复制 (mgr)

MySQL 原生组复制,基于 Paxos 协议,自动选主。建议 3 或 5 个节点(奇数)。

Shell
sh MySQL.sh \ -install_mode mgr \ -lf eth0 \ -ri 10.0.1.1,10.0.1.2,10.0.1.3 \ -rp 'RootPass123'

InnoDB Cluster (ic)

MGR + MySQL Router + MySQL Shell 完整高可用方案,自动故障转移。建议 3+ 节点。

Shell
sh MySQL.sh \ -install_mode ic \ -lf eth0 \ -ri 10.0.1.1,10.0.1.2,10.0.1.3 \ -rp 'RootPass123' \ -cn myCluster # 集群名称

MHA 高可用 (mha)

MHA Manager + 主从 + VIP 漂移,秒级故障切换,经典生产架构。需要额外指定 VIP 和 MHA Manager 节点。

Shell
sh MySQL.sh \ -install_mode mha \ -lf eth0 \ -ri 10.0.1.1,10.0.1.2 \ -rp 'RootPass123' \ -vip 10.0.1.100 \ -mha_mgr 10.0.1.200

PXC 集群 (pxc)

基于 Galera 的 Percona XtraDB Cluster,同步多主复制,所有节点可读写。建议 3+ 节点(奇数)。

Shell
sh MySQL.sh \ -install_mode pxc \ -lf eth0 \ -ri 10.0.1.1,10.0.1.2,10.0.1.3 \ -rp 'RootPass123' \ -cn pxc-cluster

Orchestrator (orch)

主从 + Orchestrator 拓扑管理,自动故障检测与切换,Web 可视化管理。

Shell
sh MySQL.sh \ -install_mode orch \ -lf eth0 \ -ri 10.0.1.1,10.0.1.2 \ -rp 'RootPass123' \ -orch_ip 10.0.1.200

通用参数

参数说明默认值
-h, --help显示帮助信息-
--version显示脚本版本号-
-debug开启调试模式,输出详细日志N
-install_mode安装模式:si / ms / mgr / ic / mha / pxc / orchsi
-lf[必填] 公网 IP 的网卡名称-
-n主机名前缀(集群模式追加 IP 后两段)mysqldb
-ou系统用户名称mysql
-op系统 mysql 用户密码mysql
-dMySQL 软件安装根目录/mysql
-ordMySQL 数据文件目录/mysql/data
-dpMySQL 数据库 root 密码MySQL@2024
-ptMySQL 数据库监听端口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 建议奇数节点。

模式专属参数

参数适用模式说明默认值
-cnic, pxc集群名称ic: mysqlCluster / pxc: pxc-cluster
-vipmha[必填] VIP 地址,用于故障切换-
-mha_mgrmha[必填] MHA Manager 节点 IP 地址-
-orch_iporch[必填] Orchestrator 节点 IP 地址-

故障排查

MySQL 启动失败

主从复制异常

MGR 节点无法加入

MHA 切换失败

常见问题

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)

已复制到剪贴板