很多生产环境因为安全策略无法连接外网,这时候离线安装MySQL就成了刚需。本文直接上干货,带你一步步完成从下载依赖到启动服务的完整流程,全程不绕弯子,照着做就能跑通。整个过程不需要联网,非常适合内网隔离环境下的服务器部署。
第一步:准备安装包与系统依赖
前往MySQL官方渠道下载对应版本的rpm包。建议直接选择包含所有组件的bundles包,里面已经打包好了服务端、客户端和开发库。同时一定要把系统基础依赖包一起下载,比如libaio、net-tools、openssl、compat-libstdc++这些。不同发行版依赖略有差异,RedHat系通常只需要前三项。下载时务必确认系统位数,64位环境就下x86_64版本,千万别下错架构导致后续安装报错。
第二步:上传文件并创建运行账户
通过SFTP工具或者rz命令把下载好的文件传到服务器指定目录,例如/opt/mysql。如果是rpm包组则无需解压,直接进行后续操作。建议提前创建专用的mysql用户和用户组,执行groupadd mysql和useradd -r -g mysql mysql命令。这样后续数据目录的读写权限归属更清晰,符合最小权限原则,也能避免直接用root运行数据库带来的安全隐患。
第三步:安装依赖与核心RPM包
先通过本地yum源或rpm命令安装系统依赖。可以使用yum localinstall -y *.rpm一次性解决冲突。接着进入rpm包所在目录,执行rpm -ivh mysql-community*.rpm --nodeps --force。加上忽略依赖和强制安装的参数是为了避开离线环境中常见的版本冲突问题。安装完成后,输入mysql --version查看版本号,能正常输出说明基础软件已经成功写入系统路径。
第四步:初始化数据目录并启动服务
执行mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql --basedir=/usr。这条命令会在默认路径生成系统表空间和临时密钥文件,initialize-insecure参数表示初始root密码为空,方便后续快速修改。初始化耗时取决于磁盘性能,完成后自动退出。接着执行systemctl daemon-reload重载配置,再用systemctl start mysqld启动服务。输入systemctl status mysqld检查状态,显示active running即代表进程已拉起。
第五步:重置密码与开放远程访问
首次登录直接输入mysql -u root -p,按回车跳过密码验证进入交互界面。成功后立即运行ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPass123!';语句设置强密码。若需局域网其他机器连接,执行GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'StrongPass123!' WITH GRANT OPTION;并flush privileges;刷新缓存。最后在服务器防火墙上放行3306端口,确保TCP协议双向通行。
第六步:排错技巧与日常维护
服务启动失败时,优先查看/var/log/mysqld.log日志文件,搜索error关键词定位原因。最常见的是数据目录权限错误,用chown -R mysql:mysql /var/lib/mysql修复即可。字符集乱码问题可在/etc/my.cnf的mysqld段落下追加character-set-server=utf8mb4和collation-server=utf8mb4_general_ci,保存后重启服务生效。建议将配置文件做好备份,定期清理ibdata1文件膨胀产生的空间碎片,保持数据库长期稳定运行。
离线安装虽然步骤多一点,但掌握了底层逻辑其实非常稳定。按照上面的顺序操作,基本不会踩坑。遇到具体报错直接查日志,比盲目搜教程更高效。掌握这套流程后,不管是Centos还是Ubuntu,替换对应的包管理命令就能举一反三,轻松应对各种内网部署场景。



