如何在无网络环境下快速完成MySQL环境搭建 离线数据库环境搭建及安装包部署方法

来源:这里教程网 时间:2026-02-28 20:51:26 作者:

MySQL 离线安装不是“复制粘贴就能用”,核心在于提前准备好与目标系统完全匹配的二进制包 + 手动初始化数据目录 + 正确设置

my.cnf
路径和权限。

确认操作系统架构与 MySQL 版本兼容性

离线环境最常踩的坑是下载了 x86_64 包却装在 ARM 服务器上,或用了 glibc 2.28 编译的包却部署在 CentOS 7(glibc 2.17)机器上。必须严格核对:

uname -m
查 CPU 架构(
x86_64
/
aarch64
ldd --version
查 glibc 版本,去 MySQL 官网下载页找对应
Linux - Generic
包(如
mysql-8.0.33-linux-glibc2.17-x86_64.tar.xz
避免使用
mysql-community-server
RPM 包——它依赖网络源安装依赖(
systemd-sysv
libaio
等),离线易失败

解压后必须手动执行
mysqld --initialize

二进制包不带预初始化数据目录,直接启动会报错

Can't find error-message file
Failed to open log file
。关键步骤:

创建独立用户运行(非 root):
useradd -r -s /bin/false mysql
设置数据目录权限:
chown -R mysql:mysql /opt/mysql/data
初始化(生成
root@localhost
临时密码):
/opt/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/mysql/data --basedir=/opt/mysql
注意:
--initialize
会生成临时密码,输出在终端末尾(形如
A temporary password is generated for root@localhost: aB3#xQ9!mLp
),务必记录

my.cnf
必须显式指定
basedir
datadir

离线环境下,MySQL 不会自动识别解压路径,若配置文件缺失或路径错误,启动时静默失败或报

unknown variable 'log-error'
。最小可用配置示例:

[mysqld]
basedir = /opt/mysql
datadir = /opt/mysql/data
socket = /opt/mysql/mysql.sock
log-error = /opt/mysql/logs/error.log
pid-file = /opt/mysql/mysqld.pid
<p>[client]
socket = /opt/mysql/mysql.sock

重点:

所有路径必须绝对路径,且目录需提前
mkdir -p
chown mysql:mysql
不要省略
[client]
段——否则
mysql -u root -p
连接时找不到 socket
启动命令必须加
--defaults-file
/opt/mysql/bin/mysqld --defaults-file=/opt/mysql/my.cnf --user=mysql &

首次登录后立即修改密码并关闭密码过期策略

临时密码仅能用于首次登录,且默认开启密码过期(

password_expired=1
),不处理会导致后续连接直接被拒绝:

用临时密码登录:
/opt/mysql/bin/mysql -u root -p -S /opt/mysql/mysql.sock
执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPass123!';
禁用强制改密:
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
刷新权限:
FLUSH PRIVILEGES;

没做这步,下次用新密码连就会卡在

Access denied for user 'root'@'localhost'
——不是密码输错,是账户被锁定了。

相关推荐