MySQL企业版在SUSE上必须用二进制tar.xz包手动部署并配置systemd服务,因官方不提供SUSE兼容RPM包,zypper或rpm安装会引发依赖冲突、服务注册失败及mysql.server脚本缺失等问题。

确认 SUSE 版本号再选源,别直接下 el7/el8 包
MySQL 官方 YUM 源不支持 SUSE(openSUSE 或 SLES),它只提供 el(RHEL/CentOS)和 fc(Fedora)的 RPM 包。你在 https://dev.mysql.com/downloads/repo/yum/ 页面看到的所有 mysql80-community-release-*.noarch.rpm 都无法在 SUSE 上安装——rpm -ivh 会报依赖错误或提示“not an rpm package”。
正确做法是改用 MySQL 官方提供的 SUSE 兼容 RPM 包,路径在:https://dev.mysql.com/downloads/mysql/#downloads
→ 点击 “Select Operating System” 下拉菜单 → 选择 SUSE Linux → 再选对应版本(如 SLES 15 SP4、openSUSE Leap 15.5)。
常见误区:
- 误把 CentOS 的
mysql80-community-release-el7-10.noarch.rpm当成通用源包上传到 SUSE - 执行
yum install mysql-community-server后报错:No match for argument: mysql-community-server - 手动
rpm -Uvh安装 el7 源包后,yum repolist根本不显示 mysql 源
添加 MySQL SUSE 官方源的实操步骤
以 openSUSE Leap 15.5 为例(SLES 类似,注意替换版本代号):
- 下载对应 RPM:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-server-8.0.33-1.sles15.x86_64.rpm - 同时下载依赖组件(缺一不可,否则安装失败):
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-client-8.0.33-1.sles15.x86_64.rpmwget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-common-8.0.33-1.sles15.x86_64.rpmwget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-icu-data-files-8.0.33-1.sles15.x86_64.rpm - 用
zypper安装(不是yum或dnf):zypper install mysql-community-*.rpm - 验证是否识别:
zypper search -s mysql-community-server应显示已安装状态
注意:zypper 不会自动创建 repo 源配置,它只是离线安装 RPM。所以你不会在 /etc/zypp/repos.d/ 下看到 mysql.repo 文件——这正常,SUSE 官方不提供动态更新的 MySQL repo,后续升级需手动下载新版 RPM。
为什么 SUSE 不推荐用 YUM 源方式?
因为 SUSE 的包管理生态和 RHEL 完全不同:
– zypper 解析的是 .repo 文件里的 baseurl,但 MySQL 官网没为 SUSE 提供该格式源;
– 即使你强行把 el7 的 .repo 放进 /etc/zypp/repos.d/,zypper refresh 会报 404(路径不存在);
– MySQL 的 SUSE RPM 包名含 sles15 或 leap15,而 el7 包名含 el7,底层 glibc 和 OpenSSL 版本不兼容。
性能与兼容性影响:
- 用错源安装后,
mysqld启动时可能报:error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file - 即使启动成功,
mysql --version显示版本,但连接客户端时触发认证插件不匹配(caching_sha2_password在旧 SUSE OpenSSL 下握手失败)
替代方案:用 Docker 快速跑 MySQL 8.0
如果你只需要 MySQL 服务本身,而非深度集成进系统包管理,Docker 是更稳妥的选择:
- 确认已装
docker并运行:systemctl status docker - 拉取官方镜像(自动适配 SUSE 内核):
docker pull mysql:8.0 - 启动容器(映射 3306 端口,设 root 密码):
docker run -d --name mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0 - 验证:
docker exec -it mysql8 mysql -uroot -p123456 -e "SELECT VERSION();"
这个方式绕过了所有源配置、依赖冲突、OpenSSL 版本、libaio 缺失等问题——SUSE 上最不容易翻车的 MySQL 部署路径。


















