适用系统:CentOS 7 / RHEL 7
目标版本:MySQL 5.7(官方社区版)
安装方式:通过 MySQL 官方 Yum 仓库
特点:自动导入 GPG 密钥、跳过重复安装、获取初始密码、验证服务状态
在 Linux 环境下部署 MySQL 是大数据、Web 开发或数据库运维的常见任务。手动配置仓库、处理 GPG 密钥、查找临时密码等步骤繁琐且易错。本文提供一个全自动 Bash 脚本,只需一条命令即可完成 MySQL 5.7 的完整安装与基础验证。
📌 脚本核心功能
- ✅ 强制 root 权限运行(安全要求)
- ✅ 自动检测是否已安装 MySQL(避免重复操作)
- ✅ 自动导入 MySQL 官方 GPG 公钥(解决
GPG check FAILED错误) - ✅ 自动安装 MySQL 5.7 官方 Yum 仓库
- ✅ 安装
mysql-community-server - ✅ 启用开机自启 + 立即启动服务
- ✅ 自动提取初始 root 密码(来自
/var/log/mysqld.log) - ✅ 验证 MySQL 服务是否正常响应
📜 完整安装脚本(适用于 CentOS 7)
将以下内容保存为install_mysql57.sh:
#!/bin/bash# 自动安装 MySQL 5.7set-eecho"=== MySQL 5.7 自动安装脚本 ==="# 检查是否为 root 用户if["$EUID"-ne0];thenecho"❌ 请以 root 用户运行此脚本。"exit1fi# 检查 MySQL 是否已安装ifcommand-v mysql&>/dev/null;thenecho">>> 检测到 MySQL 已安装,跳过安装步骤。"mysql --versionexit0fi# 导入 MySQL 官方 GPG 公钥(防止 GPG check FAILED)echo">>> 导入 MySQL 官方 GPG 公钥..."rpm--import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022# 安装 MySQL yum repositoryif!rpm-qa|grep-q mysql57-community-release;thenecho">>> 安装 MySQL yum 仓库..."yuminstall-y https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmelseecho">>> 已安装 MySQL yum 仓库,跳过..."fi# 安装 MySQL serverecho">>> 安装 MySQL server..."yuminstall-y mysql-community-server# 开机自启并启动echo">>> 配置开机自启并启动 MySQL..."systemctlenablemysqld systemctl start mysqld# 获取初始 root 密码MYSQL_TEMP_PASSWORD=$(grep'temporary password'/var/log/mysqld.log|awk'{print $NF}')echo">>> MySQL 安装完成!"echo"初始 root 密码:$MYSQL_TEMP_PASSWORD"# 验证 MySQL 可用性ifmysqladminping&>/dev/null;thenecho"✅ MySQL 服务运行正常!"mysql --versionelseecho"⚠️ MySQL 服务未能正常启动,请检查日志 /var/log/mysqld.log"fiecho"=== MySQL 5.7 安装完成 ==="▶️ 使用步骤
1. 保存脚本并赋予执行权限
sudoviminstall_mysql57.sh# 粘贴上述脚本内容chmod+x install_mysql57.sh2. 以 root 身份运行
sudo./install_mysql57.sh⚠️ 注意:必须使用 root 或 sudo,否则无法写入系统仓库和启动服务。
3. 记录初始密码
脚本输出示例:
初始 root 密码: sK7#mP!9xQr2该密码由 MySQL 在首次初始化时自动生成,仅用于首次登录。
4. 首次登录并修改密码
mysql -u root -p# 输入上面显示的临时密码# 登录后立即修改密码(MySQL 5.7 要求强密码策略)ALTERUSER'root'@'localhost'IDENTIFIED BY'YourNewStrongPassword123!';💡 密码需包含大小写字母、数字、特殊字符,长度 ≥ 8。
🔒 安全说明
- 本脚本仅完成基础安装,未进行安全加固(如删除匿名用户、禁止远程 root 登录等)。
- 生产环境建议运行
mysql_secure_installation进行安全配置:mysql_secure_installation
❓ 常见问题解答
Q1:为什么需要导入 GPG 公钥?
A:Yum 默认启用 GPG 校验。若不导入官方公钥,安装 RPM 包时会报错:
GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql"Q2:脚本是否支持 CentOS 8 或其他版本?
A:当前脚本专为CentOS 7设计(使用el7仓库包)。
若用于 CentOS 8,请替换仓库 URL 为mysql80-community-release-el8-*.noarch.rpm,但注意:MySQL 5.7 官方已停止对 EL8 的支持,建议升级到 MySQL 8.0。
Q3:找不到临时密码怎么办?
A:检查日志文件:
sudogrep'temporary password'/var/log/mysqld.log若无输出,可能是 MySQL 初始化失败,查看完整日志排查:
sudotail-n50/var/log/mysqld.log✅ 总结
本脚本极大简化了 MySQL 5.7 在 CentOS 7 上的部署流程,特别适合:
- 快速搭建测试/开发环境
- 自动化运维(配合 Ansible、Shell 批量部署)
- 学习 Hadoop/Hive 生态前的元数据库准备
📌后续建议:安装完成后,配置
my.cnf、创建专用 Hive Metastore 用户、授权远程访问(如需),并定期备份数据。