能装,但必须按依赖顺序安装,且suse 12/15的包名后缀(.sl12或.sl15)必须匹配系统版本,否则rpm -ivh报“failed dependencies”;需先清理mariadb-libs等冲突包,再严格按common→client-plugins→libs→client→server顺序安装,并确保libaio、icu数据包等依赖到位,最后修正/var/log/mysql权限及禁用validate_password策略方可启动。

能装,但必须按依赖顺序安装,且 SUSE 12/15 的包名后缀(.sl12 或 .sl15)不能错,否则 rpm -ivh 直接报 “failed dependencies”。
确认系统版本与对应 RPM 包后缀
SUSE 不同大版本对应不同 RPM 包命名规则,混用会导致依赖解析失败:
- SUSE Linux Enterprise Server 12 → 包名含
.sles12或.sl12(如mysql-community-server-8.0.25-1.sles12.x86_64.rpm) - SUSE Linux Enterprise Server 15 → 包名含
.sl15(如mysql-community-server-8.0.43-1.sl15.x86_64.rpm) - openSUSE 15 → 同样用
.sl15,但需额外导入 GPG 密钥并替换 repo 源(见下条)
错误示例:mysql-community-server-8.0.43-1.el7.x86_64.rpm 在 SUSE 上会因 glibc、systemd 等基础库不兼容而安装失败。
清理旧版 MySQL / MariaDB 冲突包
MySQL 8.0 与系统自带的 mariadb-libs 或旧版 mysql-community-* 二进制冲突,不清理会卡在 mysql-community-libs 安装阶段:
- 查旧包:
rpm -qa | grep -i 'mysql\|mariadb' - 强制卸载(保留
--nodeps):rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 - 删残留配置:
rm -f /etc/my.cnf /etc/my.cnf.d/* - 删数据目录(首次安装可跳过):
rm -rf /var/lib/mysql
注意:yum remove 在 SUSE 上不可用(应使用 zypper rm),但直接 rpm -e 更可靠,避免 zypper 依赖检查干扰。
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
按严格顺序安装 RPM 包(不能用 yum install)
SUSE 默认不带 MySQL 官方 repo,zypper install mysql-community-server 会失败;必须本地 rpm -ivh,且顺序不可颠倒:
rpm -ivh mysql-community-common-8.0.25-1.sles12.x86_64.rpmrpm -ivh mysql-community-client-plugins-8.0.25-1.sles12.x86_64.rpmrpm -ivh mysql-community-libs-8.0.25-1.sles12.x86_64.rpmrpm -ivh mysql-community-client-8.0.25-1.sles12.x86_64.rpmrpm -ivh mysql-community-server-8.0.25-1.sles12.x86_64.rpm
关键点:
- 缺
mysql-community-icu-data-files?8.0.26+ 版本需要它,漏装会导致mysqld启动报ICU data files not found - 报
libaio.so.1找不到?先运行:zypper install libaio1(SLES 12)或zypper install libaio(SLES 15) - 服务名是
mysql而非mysqld:systemctl start mysql,systemctl status mysql
启动后密码获取与策略绕过
MySQL 8.0 初始化后不生成明文密码文件,初始密码藏在日志里,且默认策略极严:
- 查临时密码:
sudo grep 'temporary password' /var/log/mysql/mysqld.log(SLES)或/var/log/messages(部分 openSUSE) - 登录后立即改密会失败,因
validate_password插件拦截:ALTER USER 'root'@'localhost' IDENTIFIED BY '123';→ 报错Failed to set password - 临时关闭策略(生产慎用):
SET GLOBAL validate_password.policy = LOW;,再执行改密 - 或彻底卸载插件:
UNINSTALL PLUGIN validate_password;(后续重启仍生效,除非重装 server 包)
最易被忽略的一点:SUSE 系统中 /var/log/mysql/ 目录权限常为 root:root,而 mysql 用户无法写入日志,导致 mysqld 启动静默失败 —— 需手动 chown mysql:mysql /var/log/mysql 并确认 SELinux 处于 disabled 状态(getenforce 返回 Disabled)。










