OpenSUSE更新后MariaDB/Galera启动失败:WSREP无密码套件错误
WSREP: context: library has no ciphers 我之前帮不少用户处理过OpenSUSE Tumbleweed升级后MariaDB+Galera的兼容性问题,你的情况很典型——核心冲突是Galera 3.23.20版本不支持OpenSSL 1.1.x。你这次系统更新把OpenSSL从1.0.x升到了1.1.x,MariaDB 10.2.13本身已经适配了新的OpenSSL,但没升级的Galera 3.23.20还停留在只支持OpenSSL 1.0的阶段,所以启动时会抛出library has no ciphers的错误。
下面是两种可行的解决方案,优先推荐第一种:
方案1:升级Galera到兼容OpenSSL 1.1的版本
这是最彻底的解决办法,因为后续系统更新还会保持OpenSSL 1.1.x,升级Galera一劳永逸:
- 先停止集群所有节点的MariaDB服务:
systemctl stop mariadb - 在OpenSUSE Tumbleweed上用包管理器安装兼容的Galera版本(至少3.25版本开始支持OpenSSL 1.1,Galera 4和MariaDB 10.2完全兼容):
zypper install galera-4 - 逐个启动节点的MariaDB服务:
systemctl start mariadb - 验证集群状态:登录MariaDB后执行
SHOW STATUS LIKE 'wsrep_cluster_status';,如果返回值是Primary,说明集群已经正常运行
方案2:临时降级OpenSSL(仅应急使用)
如果暂时无法升级Galera,可以临时降级OpenSSL到1.0.x版本,但这个方案会影响系统其他依赖OpenSSL 1.1的服务,只适合应急:
- 查找系统里可用的OpenSSL 1.0.x旧包:
zypper search --oldpackages openssl - 安装对应旧版本:
zypper install openssl=1.0.2* - 重启MariaDB服务:
systemctl restart mariadb - 注意:后续系统更新会自动重新升级OpenSSL,所以这只是临时 workaround,最终还是要升级Galera
验证修复效果
启动成功后,你可以检查Galera的SSL配置是否正常加载:
登录MariaDB执行以下命令:
SHOW VARIABLES LIKE 'wsrep_provider_options';
查看输出内容,确认其中包含openssl_cipher相关的配置项,说明加密套件已经正常加载。
你遇到的错误日志参考:
2018-04-06 13:12:13 139995648866240 [Note] WSREP: wsrep_load(): Galera 3.23(rac090bc) by Codership Oy info@codership.com loaded successfully.
2018-04-06 13:12:13 139995648866240 [Note] WSREP: CRC-...
[ERROR] WSREP: context: library has no ciphers
内容的提问来源于stack exchange,提问作者Benedikt

