0

我在 ubuntu 16.04 中运行 mariadb 10.2。mariadb 将使用 freeipa (ldap+kerberos) 执行外部身份验证。我可以使用 freeipa 凭据将 mariadb 服务器与 mariadb 客户端连接起来。一切照常工作。/etc/pam.d/mariadb 如下:

auth required pam_unix.so 
account required pam_unix.so 
auth required pam_user_map.so

但是,当我使用 php7 mysqli(命令行或网络)连接时,它返回:

(
    [affected_rows] => 
    [client_info] => 
    [client_version] => 50012
    [connect_errno] => 2054
    [connect_error] => The server requested authentication method unknown to the client
    [errno] => 
    [error] => 
    [error_list] => 
    [field_count] => 
    [host_info] => 
    [info] => 
    [insert_id] => 
    [server_info] => 
    [server_version] => 
    [stat] => 
    [sqlstate] => 
    [protocol_version] => 
    [thread_id] => 
    [warning_count] => 
)

从大量研究中我注意到 php mysql 驱动程序不能很好地支持 PAM 身份验证。网上有资源http://www.sheeri.org/ldap-with-auth_pam-and-php/告诉我有办法克服,但是太粗糙了。有人可以告诉我如何使用 libmariadbclient 为 ubuntu 重建吗?/usr/bin/mysql_config反正我也找不到。谢谢

4

1 回答 1

0

我大大简化了解决方案,我会为 ubuntu 创建基本的 bash 脚本。它将使用默认的 apache2/php/percona 服务器/客户端,仅覆盖 mysqli.so、pdo_mysql.so。

https://gist.github.com/kstan79/367ef928e44523904fb36b67a92decdd

于 2018-02-08T13:21:07.600 回答