You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Percona 8 PAM+SSSD+AD认证客户端连接报错,求轻量解决方案

问题描述

我们用的是搭了PAM+SSSD+AD认证的Percona MySQL 8,只有在服务器本机终端能正常完成认证;从其他机器连接时,会报这个错:

ERROR 2059 (HY000): Authentication plugin ‘dialog’ cannot be loaded: /usr/lib/mysql/plugin/dialog.so: cannot open shared object file: No such file or directory

一开始以为是原生MySQL客户端的问题,装了Percona客户端也没解决;手动把dialog.so拷到客户端机器后,又出新错:

ERROR 2059 (HY000): Authentication plugin ‘dialog’ cannot be loaded: Incompatible client plugin interface

最后发现只有在客户端装完整的percona-server-server才能正常连接,这明显不合理,估计是存在bug。想请教:怎么只传输必要模块,让客户端不用装完整服务器就能正常连接?

补充个实用技巧:最新版DBeaver连不上,但选择「MariaDB」而非「MySQL」连接类型时,能成功通过PAM认证,其他用户可以试试。我找到一个针对MariaDB和RedHat的类似问题补丁方案,翻译如下,但不知道怎么编译包含相关模块的Percona客户端:


MariaDB的RedHat补丁内容翻译

这个补丁修改了MariaDB客户端的CMake配置,让编译客户端时顺带把dialog认证插件也带上:

  1. 在client/CMakeLists.txt中添加这段代码,确保dialog插件被编译:
MYSQL_ADD_PLUGIN(dialog dialog.c dialog_client.c
  LINK_LIBRARIES ${EDITLINE_LIBRARY}
  MODULE_ONLY MODULE_OUTPUT_NAME "dialog_client")
  1. 调整插件安装路径,把dialog.so装到客户端插件目录,而非服务器插件目录:
    修改安装路径配置,将插件目标路径指向${INSTALL_PLUGINDIR_CLIENT}(客户端专属插件目录),保证客户端能正常加载到该模块。

可行解决方案

方法1:提取服务器上兼容的dialog.so模块

  1. 从Percona MySQL 8服务器的插件目录(通常是/usr/lib64/mysql/plugin/)复制dialog.so文件到客户端的对应插件目录:
    • Percona客户端的插件目录一般是/usr/lib64/mysql/plugin/或/usr/lib/mysql/plugin/
    • 重点:客户端和服务器的Percona版本必须完全一致,否则还是会出现「插件接口不兼容」的报错
  2. 检查客户端插件目录的权限,确保MySQL客户端进程有读取该文件的权限
  3. 测试连接:执行mysql -u <AD用户名> -h <服务器地址> -P 3306,此时应该能正常触发PAM认证流程

方法2:编译包含dialog插件的Percona客户端

参考上面MariaDB的补丁思路,修改Percona客户端源码后编译:

  1. 下载对应版本的Percona MySQL 8源码包
  2. 进入client目录,修改CMakeLists.txt,添加dialog插件的编译规则(适配Percona的路径和依赖):
MYSQL_ADD_PLUGIN(dialog dialog.c dialog_client.c
  LINK_LIBRARIES ${CURSES_LIBRARIES}
  MODULE_ONLY MODULE_OUTPUT_NAME "dialog_client")
  1. 编译客户端时指定要编译dialog插件:
cmake . -DWITH_CLIENT_PLUGINS=dialog -DCMAKE_INSTALL_PREFIX=/usr/local/percona-client
make && make install
  1. 编译完成后,客户端插件目录会生成兼容的dialog.so,使用这个编译好的客户端即可正常连接

方法3:换用MariaDB客户端

Percona与MariaDB的客户端插件兼容性较好,直接安装同版本的MariaDB客户端即可——它默认包含dialog插件,能正常触发PAM+SSSD+AD认证流程,无需额外配置


内容的提问来源于stack exchange,提问作者Vippi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 02:30:58