最新教程 | 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、设置防火墙白名单)
相关推荐
ltl8 小时前
内核追踪:ftrace、kprobe、uprobe、tracepoint 生产实战
linux
·薯条大王8 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
Dxy12393102169 小时前
Python 如何使用 MySQL 的事务
python·mysql
小小、码农11 小时前
Linux进程控制:从fork到exec,手写一个简易Shell
linux·运维·服务器
不会就选b11 小时前
Linux之进程间通信(二)---模拟进程池
linux·运维·服务器
沫璃染墨13 小时前
《从零入门Linux系统篇(十五):系统工具篇·六——GDB调试器详解:从程序执行控制到高级调试技巧》
linux·运维·服务器·c语言·c++
xiaoye-duck13 小时前
MySQL 表约束全解:从基础约束到外键关联规则
数据库·mysql
AIgorithmGEEK14 小时前
Linux 环境变量完全指南:从入门到理解底层原理
linux·运维·服务器
酷可达拉斯15 小时前
Linux操作系统-升级OpenSSH修复漏洞
linux·运维·服务器·云计算
冷凝娇15 小时前
【MySQL】2026总结(二)
数据库·mysql