能离线装成功,关键在于卸干净旧包、选对架构、按序装common/libs/client/server四RPM、初始化前清空并赋权/var/lib/mysql。

mysql-community-server 能否离线装成功,关键不在命令对不对,而在于四件事:卸干净旧包、选对架构、按序装核心RPM、初始化前清空残留数据目录。其他都是细枝末节。
卸载 MariaDB 时别漏掉 mariadb-libs 和 /etc/my.cnf
CentOS 7 默认自带 mariadb-libs-5.5.*,它和 MySQL 的 mysql-community-libs 冲突,不卸会直接报错 file /usr/lib64/libmysqlclient.so.18 from install of mysql-community-libs-5.7.* conflicts with file from package mariadb-libs-5.5.*。
必须执行:
-
rpm -e --nodeps mariadb-libs(--nodeps不可省,否则依赖报错中断) -
rm -f /etc/my.cnf(残留配置会导致mysqld --initialize失败或监听端口异常) - 顺手检查
rpm -qa | grep -i mysql,确保无历史 MySQL 包残留
rpm -ivh 必须按依赖顺序安装这四个包
MySQL 5.7 RPM 包之间有强依赖链,乱序安装会提示 Failed dependencies。哪怕你用 yum localinstall,在离线环境下也常因缺少元数据失败,不如手动控序可靠。
- 先装
mysql-community-common-5.7.*.rpm(提供基础定义文件) - 再装
mysql-community-libs-5.7.*.rpm(含动态库,mysql-community-client依赖它) - 接着装
mysql-community-client-5.7.*.rpm(提供mysql命令行工具) - 最后装
mysql-community-server-5.7.*.rpm(主服务,依赖前三者)
注意:mysql-community-libs-compat-5.7.*.rpm 可选,但若系统有老程序链接 libmysqlclient.so.16,就得装它,否则启动时报 error while loading shared libraries。
初始化前必须清空 /var/lib/mysql 并确认属主
mysqld --initialize 不是“覆盖初始化”,而是严格要求目标目录为空。如果之前装过又卸载不干净,/var/lib/mysql 里留着 ibdata1 或 auto.cnf,执行后会静默失败,systemctl start mysqld 直接报 Job for mysqld.service failed,日志里只有 Can't start server: Bind on TCP/IP port. Got error: 98 (Address already in use) 这类误导信息。
- 执行
rm -rf /var/lib/mysql/*(不是rm -rf /var/lib/mysql整个目录,systemd 服务脚本认路径) - 执行
chown -R mysql:mysql /var/lib/mysql(属主错误会导致权限拒绝,mysqld启动即退出) - 运行
mysqld --initialize --user=mysql,临时密码会输出到/var/log/mysqld.log,不是终端
ARM64 架构下 rpm 包名后缀必须是 aarch64,不是 x86_64
在 ARM64 CentOS 7 上硬装 x86_64 的 RPM,会立刻报 Exec format error 或 cannot execute binary file: Exec format error。这不是权限问题,是 CPU 指令集不兼容。
- 去官网下载页 https://downloads.mysql.com/archives/community/ ,手动筛选 “Red Hat Enterprise Linux 7 / CentOS 7 (aarch64)” 分类
- 包名示例:
mysql-community-server-5.7.44-1.el7.aarch64.rpm—— 注意结尾是aarch64,不是x86_64 - 验证方式:
file mysql-community-server-5.7.*.rpm输出应含ELF 64-bit LSB shared object, ARM aarch64
最易被忽略的是:即使你下了 aarch64 包,若用 yum install *.rpm,yum 仍可能因 repo 元数据缺失而 fallback 到 x86_64 仓库尝试解析,结果还是 404 或报错。务必坚持用 rpm -ivh 手动装。











