PHP не может подключиться к MariaDB при использовании модуля auth_pam для аутентификации пользователей базы данных

Я настроил MariaDB версии 10.3 для использования PAM для аутентификации пользователей, просто запустив его на сервере (при подключении к базе данных с правами root):

MariaDB [(none)]> INSTALL SONAME 'auth_pam';

После этого я создал пользователя базы данных, используя PAM в качестве метода аутентификации:

MariaDB [(none)]> CREATE USER 'casafamilia'@'localhost' IDENTIFIED VIA pam;

Я могу подключиться к базе данных с помощью локального клиента mysql, поэтому модуль PAM работает:

# mysql -u casafamilia -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 68
Server version: 10.3.17-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Но при использовании PHP + mysqli я получаю следующую ошибку:

# php db_mysqli.php 
PHP Warning:  mysqli::__construct(): The server requested authentication method unknown to the client [dialog] in /root/db_mysqli.php on line 7
PHP Warning:  mysqli::__construct(): (HY000/2054): The server requested authentication method unknown to the client in /root/db_mysqli.php on line 7
Connection failed: The server requested authentication method unknown to the client

Вот простой PHP-код для подключения к базе данных:

<?php
$servername = "localhost";
$username = "casafamilia";
$password = "<thepassword>";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

echo "Connected successfully";
?> 

Версия PHP:

# php --version
PHP 7.2.24 (cli) (built: Oct 24 2019 19:36:00) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.24, Copyright (c) 1999-2018, by Zend Technologies

Как подключить мое PHP-приложение к MariaDB при использовании PAM для аутентификации пользователей базы данных?


person Rodrigo Renie    schedule 17.11.2019    source источник
comment
Вы пробовали использовать следующую опцию сервера в my.cnf: pam_use_cleartext_plugin = ON?   -  person Georg Richter    schedule 18.11.2019
comment
Почему вы закрываете этот вопрос, указывая на ответ, который решает другую проблему? Проблема в том, что сервер запрашивает плагин диалога, который недоступен в mysqli/mysqlnd, поэтому сервер необходимо перенастроить для использования плагина открытого текста.   -  person Georg Richter    schedule 18.11.2019
comment
@GeorgRichter спасибо, этот вариант действительно решил мою проблему. Я не знаю, почему модератор закрыл эту тему, пометив ее как дублирующую, хотя это явно не так. Я не уверен, что я могу с этим поделать.   -  person Rodrigo Renie    schedule 20.11.2019