前期准备与环境确认
离线安装MySQL的核心在于提前下载好完整的安装包以及所有关联的依赖库。首先登录目标服务器,执行cat /etc/os-release命令查看系统版本。Centos或RedHat系列推荐使用RPM包,Ubuntu或Debian系列则选择DEB包。去MySQL官网下载页找到对应版本的离线压缩文件,通常包含四个部分:客户端基础库、服务端核心程序、共享组件以及开发头文件。将这四个文件统一放在一个新建的文件夹内,比如opt/mysql-offline。同时用yum install libaio perl net-tools这些命令把基础运行环境装好,避免后面报错提示缺库。
解压文件与规划安装路径
把下载好的压缩包传到服务器后,不要直接解压到根目录。建议在usr/local下建立mysql文件夹作为最终的安装根目录。使用tar zxvf文件名.tar.gz命令解压,你会看到一堆rpm或deb文件。如果是RPM包,直接用rpm ivh *.rpm按顺序安装,系统会自动处理依赖关系。如果是通用二进制包,则需要手动移动文件到指定路径。为了统一管理,我们把data数据目录建在var/lib/mysql,日志目录放在var/log/mysql,配置文件放etc/my.cnf。这样后续升级或者迁移的时候,数据不会跟软件混在一起。
创建专用账户与分配权限
数据库服务绝对不能以root身份运行,这是基本的安全底线。使用groupadd mysql创建用户组,再useradd -r -g mysql mysql创建一个系统用户。这个账号专门用来跑mysqld进程。接着把刚才解压出来的整个mysql目录所有权赋给这个新账号,执行chown -R mysql:mysql usr/local/mysql。数据目录和日志目录同样要改归属。这一步做不好,启动时会疯狂报权限拒绝错误,后期排错非常耽误时间。
初始化数据库与生成配置
进入bin目录,执行mysqld --initialize --user=mysql命令。这一步会随机生成root密码,并且打印在终端最末尾,务必截图保存。如果提示找不到libaio.so库,回去检查依赖是否漏装。初始化完成后,把support-files下的mysql.server脚本复制到etc/init.d/目录下,赋予可执行权限。接着编写my.cnf配置文件,指定socket路径、pid文件位置、字符集为utf8mb4、默认引擎为innodb。关闭严格模式或者调整sql_mode以适应业务需求。配置写好后,尝试systemctl start mysqld或者service mysql start启动服务。
安全加固与远程访问设置
服务跑起来后,用临时密码登录数据库。登录后第一件事就是修改root密码,采用alter user root identified by新密码语句。接着删除匿名用户,清理掉不需要的测试库。如果需要外部机器连接,修改bind_address为0.0.0.0,并在防火墙放行三千三百零六端口。创建专用的业务账号,只给特定数据库授权,千万不要把所有权限都灌给root。最后重启服务让配置生效,用命令行测试连通性。整个过程只要严格按步骤走,基本不会遇到坑。遇到卡死不动的情况,优先看var/log/mysql下的错误日志,百分之九十的问题都能从日志里找到明确线索。



