一键安装 MySQL 5.7(CentOS 7)自动化脚本详解

适用系统 :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

bash 复制代码
#!/bin/bash
# 自动安装 MySQL 5.7
set -e

echo "=== MySQL 5.7 自动安装脚本 ==="

# 检查是否为 root 用户
if [ "$EUID" -ne 0 ]; then
  echo "❌ 请以 root 用户运行此脚本。"
  exit 1
fi

# 检查 MySQL 是否已安装
if command -v mysql &>/dev/null; then
  echo ">>> 检测到 MySQL 已安装,跳过安装步骤。"
  mysql --version
  exit 0
fi

# 导入 MySQL 官方 GPG 公钥(防止 GPG check FAILED)
echo ">>> 导入 MySQL 官方 GPG 公钥..."
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

# 安装 MySQL yum repository
if ! rpm -qa | grep -q mysql57-community-release; then
  echo ">>> 安装 MySQL yum 仓库..."
  yum install -y https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
else
  echo ">>> 已安装 MySQL yum 仓库,跳过..."
fi

# 安装 MySQL server
echo ">>> 安装 MySQL server..."
yum install -y mysql-community-server

# 开机自启并启动
echo ">>> 配置开机自启并启动 MySQL..."
systemctl enable mysqld
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 可用性
if mysqladmin ping &>/dev/null; then
  echo "✅ MySQL 服务运行正常!"
  mysql --version
else
  echo "⚠️ MySQL 服务未能正常启动,请检查日志 /var/log/mysqld.log"
fi

echo "=== MySQL 5.7 安装完成 ==="

▶️ 使用步骤

1. 保存脚本并赋予执行权限

bash 复制代码
sudo vim install_mysql57.sh
# 粘贴上述脚本内容
chmod +x install_mysql57.sh

2. 以 root 身份运行

bash 复制代码
sudo ./install_mysql57.sh

⚠️ 注意:必须使用 root 或 sudo,否则无法写入系统仓库和启动服务。

3. 记录初始密码

脚本输出示例:

复制代码
初始 root 密码: sK7#mP!9xQr2

该密码由 MySQL 在首次初始化时自动生成,仅用于首次登录。

4. 首次登录并修改密码

bash 复制代码
mysql -u root -p
# 输入上面显示的临时密码

# 登录后立即修改密码(MySQL 5.7 要求强密码策略)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword123!';

💡 密码需包含大小写字母、数字、特殊字符,长度 ≥ 8。


🔒 安全说明

  • 本脚本仅完成 基础安装,未进行安全加固(如删除匿名用户、禁止远程 root 登录等)。

  • 生产环境建议运行 mysql_secure_installation 进行安全配置:

    bash 复制代码
    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:检查日志文件:

bash 复制代码
sudo grep 'temporary password' /var/log/mysqld.log

若无输出,可能是 MySQL 初始化失败,查看完整日志排查:

bash 复制代码
sudo tail -n 50 /var/log/mysqld.log

✅ 总结

本脚本极大简化了 MySQL 5.7 在 CentOS 7 上的部署流程,特别适合:

  • 快速搭建测试/开发环境
  • 自动化运维(配合 Ansible、Shell 批量部署)
  • 学习 Hadoop/Hive 生态前的元数据库准备

📌 后续建议 :安装完成后,配置 my.cnf、创建专用 Hive Metastore 用户、授权远程访问(如需),并定期备份数据。

相关推荐
聆风吟º11 小时前
CANN开源项目深度实践:基于amct-toolkit实现自动化模型量化与精度保障策略
运维·开源·自动化·cann
剩下了什么13 小时前
MySQL JSON_SET() 函数
数据库·mysql·json
java搬砖工-苤-初心不变14 小时前
MySQL 主从复制配置完全指南:从原理到实践
数据库·mysql
WangYaolove131416 小时前
基于python的在线水果销售系统(源码+文档)
python·mysql·django·毕业设计·源码
做人不要太理性16 小时前
CANN Runtime 运行时与维测组件:异构任务调度、显存池管理与全链路异常诊断机制解析
人工智能·自动化
池央16 小时前
CANN oam-tools 诊断体系深度解析:自动化信息采集、AI Core 异常解析与 CI/CD 流水线集成策略
人工智能·ci/cd·自动化
依米阳光0816 小时前
Playwright MCP AI实现自动化UI测试
ui·自动化·playwright·mcp
YongCheng_Liang17 小时前
从零开始学 Python:自动化 / 运维开发实战(核心库 + 3 大实战场景)
python·自动化·运维开发
鸽芷咕17 小时前
为什么越来越多开发者转向 CANN 仓库中的 Python 自动化方案?
python·microsoft·自动化·cann
霖霖总总17 小时前
[小技巧66]当自增主键耗尽:MySQL 主键溢出问题深度解析与雪花算法替代方案
mysql·算法