最新教程 | 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 半同步复制:AFTER_SYNC 为何能避免主从同步数据丢失?
数据库·mysql·adb·高可用·主从同步
Mike_6668 小时前
Linux (Ubuntu) Jetson AArch64 架构 JetPack6.2 CUDA+CUDNN+PyTorch 安装踩坑经历
linux·pytorch·ubuntu
千寻技术帮8 小时前
10342_基于Springboot的云存管家平台的设计与实现
mysql·毕业设计·springboot·文件管理·云存储·云存管家
tianyuanwo8 小时前
Bash与Sh的诞生背景、底层原理及Linux多Shell解释器兼容性解析
linux·开发语言·bash
skywalk81638 小时前
Ubuntu宽屏显示器只有4:3分辨率问题的解决:用cvt和xrandr命令查看并配置显卡分辨率到1440x900
linux·运维·ubuntu·显示
我科绝伦(Huanhuan Zhou)8 小时前
MySQL主主复制管理器(MMM):技术原理与实践架构解析
数据库·mysql·架构
oMcLin8 小时前
如何在CentOS 8上配置并调优Apache Spark集群,确保大规模数据分析任务的高效运行与资源分配?
spark·centos·apache
都小事儿8 小时前
U-boot:自搬移
linux·spring boot
JiMoKuangXiangQu8 小时前
Linux 内存 domain 管理
linux·内存管理·domain
warton888 小时前
ubuntu24下操作配置mysql8相关目录到指定地址
linux·运维·mysql