我在 Ubuntu 14.04 上安装了 MySQL(MariaDB),使用文档从我们的 OpenLDAP 实例对用户进行身份验证这里。当我通过 ssh 进入服务器并发出命令时,mysql -u user101 -p
我可以顺利进行身份验证(user101 是 LDAP 用户;在 mysql 中没有密码)。当我尝试使用远程连接时,身份验证失败,并显示以下内容:
$ mysql --ssl -u user101 -p -h myserver
Enter password:
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
在服务器上,控制台输出以下消息:
# 2017 Jul 18 08:27:05 myserver pam_unix(mysql:auth): auth could not identify password for [user101]
文档这里提到了dialog
插件,但说无需安装或启用任何东西所以不知道该怎么做。我没有pam_user_map.c
按照该链接中提到的进行编译或安装,因为本地身份验证工作正常。
我已授予用户使用%
mysql 条目的主机名进行远程访问的权限:
CREATE USER 'user101'@'%' IDENTIFIED VIA pam USING 'mariadb';
GRANT ALL PRIVILEGES ON test.* TO 'user101'@'%' IDENTIFIED VIA pam;
我假设其余的 LDAP 设置(来自文档)是正确的,否则服务器不会在本地对用户进行身份验证。我是不是漏掉了什么?为什么这在本地有效,但在远程无效?
答案1
这就完成了(在客户端)
aptitude install libmariadbclient18
答案2
如果您想使用 mysql 客户端而不是 mariadb 客户端,您需要传递以下选项:
mysql --enable-cleartext-plugin --ssl -u user101 -p -h myserver