因此,最近我的工作为mariadb v10.2实现了PAM插件,以通过公司的LDAP验证用户身份,现在PDO(和mysqli)不再能够连接到数据库。错误消息如下:
Uncaught PDOException: PDO::__construct(): The server requested authentication method unknown to the client [dialog]
我一直到处都在寻找解决方案,但一直找不到解决未知身份验证对话框的方法,只有mysql 8的新身份验证方案存在问题。
这是我用来连接并在切换到PAM之前可以正常工作的快速测试版本:
$pdo = new PDO('mysql:host=myhost;port=1234;dbname=mydbname', 'myuser', 'myldappw', [
PDO::MYSQL_ATTR_SSL_CA => "path/to/ca",
PDO::MYSQL_ATTR_SSL_KEY => "path/to/key",
PDO::MYSQL_ATTR_SSL_CERT => "path/to/cert",
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
]);
关于如何解决/解决此问题的任何想法?谢谢。
我已经在PHP 7.0、7.1和7.2上进行了尝试。奇怪的是,我可以通过PHPstorm数据库接口和SQLyog连接。