最新教程 | CentOS 7 下 MySQL 8 离线部署完整手册(含自动部署脚本)

一、适用范围

  • 操作系统:CentOS 7(无网络环境)
  • 数据库版本:MySQL 8.4.6(RPM 安装包)
  • 使用方式:手动安装 + 自动化脚本部署

二、准备阶段

1. 浏览器下载 RPM 包(在联网的电脑上)

访问官网 RPM 下载页面:

https://dev.mysql.com/downloads/mysql/

访问云盘下载页面:

123云盘(支持一键下载压缩包) 密码:4BW5
蓝奏云(单个文件受限只能一个一个下)--密码:cn4e

选择以下配置:

  • Product Version: 8.4.6
  • Operating System: Red Hat Enterprise Linux / Oracle Linux 7 (x86, 64-bit)

点击 "Download" 下载以下 6 个必须的 .rpm 包:

text 复制代码
mysql-community-common-8.4.6-1.el7.x86_64.rpm
mysql-community-libs-8.4.6-1.el7.x86_64.rpm
mysql-community-libs-compat-8.4.6-1.el7.x86_64.rpm
mysql-community-client-8.4.6-1.el7.x86_64.rpm
mysql-community-client-plugins-8.4.6-1.el7.x86_64.rpm
mysql-community-server-8.4.6-1.el7.x86_64.rpm

将这 6 个文件拷贝至无网络环境下的 CentOS 服务器中,比如放入:

bash 复制代码
/root/mysql_rpms/

三、手动部署步骤(推荐先了解再自动化)

1. 进入 RPM 存放目录

bash 复制代码
cd /root/mysql_rpms

2. 安装 MySQL 所有依赖包

bash 复制代码
sudo rpm -Uvh --nodeps --force *.rpm

⚠️ 注意:--nodeps 用于忽略依赖检查,--force 可覆盖 mariadb-libs。

3. 启动 MySQL 服务

bash 复制代码
sudo systemctl start mysqld
sudo systemctl enable mysqld

4. 获取初始密码

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

5. 登录并修改密码(注意,需要复杂密码,简单密码不符合有要求)

bash 复制代码
mysql -uroot -p
sql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassw0rd!';

四、自动部署脚本(适用于已准备好 .rpm 文件的环境)

1. 创建脚本文件

保存以下内容为 mysql_offline_install.sh

bash 复制代码
#!/bin/bash

set -e

RPM_DIR="/root/mysql_rpms"

echo "==> 开始 MySQL 离线部署..."
cd $RPM_DIR

# 安装 RPM 包
rpm -Uvh --nodeps --force *.rpm

# 启动 MySQL 服务
systemctl start mysqld
systemctl enable mysqld

# 显示初始密码
echo "==> MySQL 初始密码:"
grep 'temporary password' /var/log/mysqld.log

echo "==> 部署完成!请使用以上密码登录并修改。"

2. 设置执行权限并运行

bash 复制代码
chmod +x mysql_offline_install.sh
./mysql_offline_install.sh

五、FAQ 常见问题

Q1: 提示 yum 无法解析依赖?

  • 请勿使用 yum localinstall,因为它仍会尝试联网。使用 rpm -Uvh 即可。

Q2: mariadb-libs 冲突?

  • rpm -Uvh --force 可自动替换 mariadb-libs,MySQL 官方建议这样操作。

Q3: 忘记初始密码怎么办?

  • 请参考 MySQL 文档使用 --skip-grant-tables 启动服务后重置密码。

六、部署后建议

  1. 登录后修改 root 密码
  2. 设置 MySQL 字符集、端口等配置项(修改 /etc/my.cnf)
  3. 安全配置(如关闭远程 root、设置防火墙白名单)
相关推荐
_upupup8 小时前
Linux的调试工具——gdb/cgdb
linux·服务器
JeJe同学9 小时前
Docker镜像导入、容器启动
linux·运维·docker
Jason_zhao_MR9 小时前
Linux与实时控制如何兼得
linux·嵌入式硬件·机器人·工业控制
闲云野鹤在人间9 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
一个风轻云淡10 小时前
GCC 和 GDB命令简单解读
java·linux·前端
H.莓飛11 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
资料库0111 小时前
Linux 8个常见运维故障排查
java·linux·运维
要开心吖ZSH11 小时前
MySQL 慢 SQL 排查操作手册-个人笔记版
java·笔记·sql·mysql·慢查询
零基础12312 小时前
Ubuntu 常用命令汇总
linux·运维·开发语言
Android系统攻城狮12 小时前
Linux Gstreamer深度解析之gst_audio_sink_get_type调用流程与实战(六十五)
linux·运维·服务器·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶