scl在centos 7上不提供mysql 8.0,因其仅支持至mysql 5.7且已eol;mysql 8.0从未纳入scl生态,必须通过oracle官方yum仓库(mysql80-community-release)安装。

scl(Software Collections)在 CentOS 7 上不提供 MySQL 8.0。这是关键前提,必须先说清。
Red Hat 官方维护的 SCL 仓库中,MySQL 最高只到 mysql57(即 MySQL 5.7),且已进入 EOL(2023 年底停止更新)。MySQL 8.0 自始至终未被纳入 SCL 生态,也没有 mysql80 或类似 collection。
所以,如果你在搜索“CentOS 7 scl mysql 8.0”并期望用 yum install centos-release-scl && scl enable mysql80 bash 这类方式安装——这条路根本走不通。
为什么 SCL 没有 MySQL 8.0
- SCL 的设计目标是提供与系统基础环境隔离、可并行安装的开发工具链(如
devtoolset、rh-python38),而非替代数据库主服务。 - MySQL 是系统级服务组件,依赖内核、libc、SELinux 策略等深度集成,SCL 不适合承载这类长期运行、需 systemd 管理、涉及 socket 文件和数据目录权限的服务。
- Oracle 官方只通过自己的 YUM 仓库(
mysql80-community-release)分发 MySQL 8.0,且明确不兼容 SCL 安装路径(如/opt/rh/)。
实际可行的替代路径(推荐顺序)
-
首选:官方 YUM 仓库安装(最稳)
- 卸载
mariadb-libs(必须加--nodeps) - 下载并安装
mysql80-community-release-el7-*.noarch.rpm yum install mysql-community-server- 注意:首次启动会生成临时密码,日志在
/var/log/mysqld.log
- 卸载
-
次选:RPM Bundle 手动安装(可控性强)
- 下载
mysql-8.0.*-el7-x86_64.rpm-bundle.tar - 解压后按依赖顺序安装(
common → libs → client → server) - 避开
mysql-community-icu-data-files的 GPG 报错:加--nogpgcheck
- 下载
-
不推荐:源码编译或二进制免安装版
- 缺少 systemd 集成、自动日志轮转、安全加固脚本(
mysql_secure_installation) -
lower_case_table_names=1必须在初始化前指定,否则无法更改
- 缺少 systemd 集成、自动日志轮转、安全加固脚本(
容易踩的坑
- 误信网上“
scl enable mysql80”教程:实际执行会报Package mysql80 is not installed或No collection named 'mysql80' - 混淆
centos-release-scl和mysql80-community-release:前者是 SCL 元包,后者才是 MySQL 8.0 的源配置 - 安装后
systemctl start mysqld失败,常见原因是:-
/var/lib/mysql权限未设为mysql:mysql -
/etc/my.cnf中指定了不存在的datadir路径 - SELinux 启用状态下未打补丁(
setsebool -P mysqld_disable_trans on或用restorecon -Rv /var/lib/mysql)
-
SCL 路径在 CentOS 7 上对 MySQL 8.0 是条死胡同;真正要落地,得绕开它,直奔 Oracle 官方仓库或 RPM 包。











