MySQL 8.0.37 离线部署指南
在生产环境中,服务器常无法连接外网,需离线安装 MySQL。本文详细介绍如何从官网下载 MySQL 8.0.37,上传至 CentOS 7.9 服务器并完成安装配置。
本文介绍了在 CentOS 7.9 环境下离线安装 MySQL 8.0.37 的完整流程。主要步骤包括从官网下载 RPM Bundle 包,清理服务器旧版本残留,通过 SCP 上传安装包,按特定顺序安装 RPM 依赖,启动服务并获取初始密码。随后进行了 root 密码修改、远程访问配置、防火墙及 SELinux 设置,最后通过命令行和可视化工具验证安装结果。文章还涵盖了安全加固脚本的使用及常见问题的解决方案,适用于无外网连接的生产环境部署。

在生产环境中,服务器常无法连接外网,需离线安装 MySQL。本文详细介绍如何从官网下载 MySQL 8.0.37,上传至 CentOS 7.9 服务器并完成安装配置。
下载类型: RPM Bundle
(此处为对应操作界面截图)
选择 mysql-8.0.37-1.el7.x86_64.rpm-bundle.tar (995.4M),该完整套件包含所有必要的 RPM 包,避免依赖问题。
安装新 MySQL 前,务必彻底清理系统上可能存在的旧版本:
# 停止 MySQL 相关服务
systemctl stop mysqld
systemctl stop mariadb
# 卸载现有 MySQL/MariaDB 包
rpm -qa | grep -i mysql | xargs rpm -e --nodeps 2>/dev/null
rpm -qa | grep mariadb | xargs rpm -e --nodeps 2>/dev/null
# 清理残留文件和目录
rm -rf /var/lib/mysql
rm -rf /etc/my.cnf
rm -rf /etc/my.cnf.d
rm -rf /var/log/mysqld.log
rm -rf /usr/share/mysql
rm -rf /usr/lib64/mysql
# 清理 yum 缓存
yum clean all
scp /本地路径/mysql-8.0.37-1.el7.x86_64.rpm-bundle.tar root@服务器 IP:/tmp/
yum install -y libaio numactl
cd /tmp
tar -xvf mysql-8.0.37-1.el7.x86_64.rpm-bundle.tar
(此处为解压后文件列表截图)
必须按顺序安装,否则会出现依赖错误:
# 1. 安装公共文件
yum install -y mysql-community-common-8.0.37-1.el7.x86_64.rpm
# 2. 安装客户端插件(这是关键依赖包)
yum install -y mysql-community-client-plugins-8.0.37-1.el7.x86_64.rpm
# 3. 安装共享库
yum install -y mysql-community-libs-8.0.37-1.el7.x86_64.rpm
# 4. 安装 ICU 数据文件
yum install -y mysql-community-icu-data-files-8.0.37-1.el7.x86_64.rpm
# 5. 安装客户端工具
yum install -y mysql-community-client-8.0.37-1.el7.x86_64.rpm
# 6. 安装 MySQL 服务器
yum install -y mysql-community-server-8.0.37-1.el7.x86_64.rpm
如果遇到依赖问题,可以使用强制安装:
rpm -ivh mysql-community-*.rpm --nodeps --force
其实可以一键安装,跳过未安装完的,防止依赖问题:
yum install -y *.rpm --skip-broken
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
(此处为服务状态截图)
grep 'temporary password' /var/log/mysqld.log
输出示例:A temporary password is generated for root@localhost: 临时密码
# 使用临时密码登录
mysql -u root -p
# 在 MySQL 中执行以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';
FLUSH PRIVILEGES;
EXIT;
mysql -u root -p
-- 创建允许远程连接的 root 用户
CREATE USER 'root'@'%' IDENTIFIED BY 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 或者修改现有 root 用户
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';
RENAME USER 'root'@'localhost' TO 'root'@'%';
FLUSH PRIVILEGES;
EXIT;
# 备份原配置
cp /etc/my.cnf /etc/my.cnf.bak
# 添加远程访问配置
cat >> /etc/my.cnf <<EOF
# 允许远程连接
bind-address = 0.0.0.0
# 字符集设置
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 默认认证插件(兼容旧客户端)
default_authentication_plugin = mysql_native_password
EOF
(没开防火墙则不用管,云服务器需要在服务器管理打开安全组)
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
# 检查 SELinux 状态
getenforce
# 如为 Enforcing 模式,可临时设置为 Permissive
setenforce 0
# 或永久禁用(编辑/etc/selinux/config)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl restart mysqld
# 检查版本
mysql --version
# 本地连接测试
mysql -u root -p -e "SELECT version();"
# 检查用户权限
mysql -u root -p -e "SELECT user, host FROM mysql.user;"
# 检查端口监听
netstat -tlnp | grep 3306
从另一台机器测试:
mysql -h 服务器 IP -u root -p -e "SELECT '远程连接成功' as status;"
(此处为 Navicat 连接测试截图)
# 运行安全配置脚本
mysql_secure_installation
根据提示进行安全设置:
问题: Requires: mysql-community-client-plugins = 8.0.37-1.el7
解决: 确保先安装 client-plugins 包
解决: 检查错误日志 /var/log/mysqld.log
解决:
# 停止 MySQL
systemctl stop mysqld
# 跳过权限检查启动
mysqld_safe --skip-grant-tables &
# 修改密码
mysql -u root
UPDATE mysql.user SET authentication_string='' WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
# 重启 MySQL
systemctl restart mysqld
通过本文的步骤,你可以成功在无法连接外网的 CentOS 7.9 服务器上安装配置 MySQL 8.0.37。关键要点:
这种离线安装方式在企业内网环境、安全要求高的生产环境中非常实用,确保了服务的稳定性和安全性。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online
解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online
CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online