最新教程 | 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、设置防火墙白名单)
相关推荐
Howrun7773 小时前
关于Linux服务器的协作问题
linux·运维·服务器
小白同学_C4 小时前
Lab3-page tables && MIT6.1810操作系统工程【持续更新】
linux·c/c++·操作系统os
十年磨一剑~4 小时前
Linux程序接收到sigpipe信号崩溃处理
linux
geshifei4 小时前
Sched ext回调3——select_cpu(linux 6.15.7)
linux·ebpf
代码游侠5 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法
你真是饿了5 小时前
6.库制作与原理
linux·服务器
Zach_yuan6 小时前
深入浅出 JSONCpp
linux·服务器·网络·c++
北京迅为7 小时前
《【北京迅为】itop-3568开发板NPU使用手册》- 第 7章 使用RKNN-Toolkit-lite2
linux·人工智能·嵌入式·npu
Dragon~Snow7 小时前
Linux Centos9 安装 Elasticsearch
linux·elasticsearch·jenkins
熊延7 小时前
麒麟V10系统安装部署elasticsearch
linux·运维·服务器·elasticsearch·搜索引擎·全文检索