当前位置: 首页 > news >正文

最新教程 | 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 包:

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 服务器中,比如放入:

/root/mysql_rpms/

将这 6 个文件拷贝至无网络环境下的 CentOS 服务器中


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

1. 进入 RPM 存放目录

cd /root/mysql_rpms

2. 安装 MySQL 所有依赖包

sudo rpm -Uvh --nodeps --force *.rpm

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

安装 MySQL 所有依赖包

3. 启动 MySQL 服务

sudo systemctl start mysqld
sudo systemctl enable mysqld

启动 MySQL 服务

4. 获取初始密码

sudo grep 'temporary password' /var/log/mysqld.log

获取初始密码

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

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassw0rd!';

登录并修改密码


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

1. 创建脚本文件

保存以下内容为 mysql_offline_install.sh

#!/bin/bashset -eRPM_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.logecho "==> 部署完成!请使用以上密码登录并修改。"

2. 设置执行权限并运行

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、设置防火墙白名单)
http://www.dtcms.com/a/317502.html

相关文章:

  • 【后端】java 抽象类和接口的介绍和区别
  • PromptPilot 与豆包新模型:从图片到视频,解锁 AI 新玩法
  • 8.6笔记
  • JSON、JSONObject、JSONArray详细介绍及其应用方式
  • Day 33: 动手实现一个简单的 MLP
  • 如何快速掌握大数据技术?大四学生用Spark和Python构建直肠癌数据分析与可视化系统
  • 【python中级】关于Flask服务在同一系统里如何只被运行一次
  • DDoS 防护的未来趋势:AI 如何重塑安全行业?
  • 【历史人物】【范仲淹】简历与生平
  • 应急响应知识总结
  • 主流linux版本分类与说明
  • mysql死锁的常用解决办法
  • 【Linux系统】进程间通信:命名管道
  • Java SPI 机制初探|得物技术
  • linux下的串口通信原理及编程实例
  • 二、Envoy静态配置
  • 时序预测(论文解读)-金融领域的滞后性
  • 客流特征识别准确率提升 29%:陌讯多模态融合算法在零售场景的实战解析
  • 【渲染流水线】[应用阶段]-[遮挡剔除]以UnityURP为例
  • NY112NY117美光固态闪存NY119NY123
  • 【Linux】重生之从零开始学习运维之主从MGR高可用
  • 在docker容器里面使用docker
  • 生成模型实战 | Transformer详解与实现
  • SQL的条件查询
  • 【Mysql】重生之从零开始学习运维之proxysql读写分离
  • docker相关操作记录
  • DSP2837X CLA开发实战教程
  • 解决Node.js v12在Apple Silicon(M1/M2)上的安装问题
  • 微软开发的Unix系统——Xenix测评
  • 运维新纪元:告别Excel手工规划,实现“零误差”决策