最新教程 | 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、设置防火墙白名单)
相关推荐
随风飘的云8 小时前
mysql的innodb引擎对可重复读做了那些优化,可以避免幻读
mysql
Johny_Zhao19 小时前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
chlk1232 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑2 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件2 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
xy123062 天前
OpenStack Train 部署实战(三)控制节点--keystone服务
centos·openstack
深紫色的三北六号3 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash3 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI3 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
于眠牧北3 天前
MySQL的锁类型,表锁,行锁,MVCC中所使用的临键锁
mysql