0

我可以使用应用服务器上的 --ssl 选项将数据库与 Maria 客户端连接:

mariadb -h [地址] -P [端口] -u [数据库管理员用户] -p --ssl

但是尝试使用 PHP PDO 连接同一服务器上的同一数据库,我们收到以下错误消息:

SQLSTATE[HY000] [2054] 服务器请求客户端未知的身份验证方法[client_ed25519]

我在 PDO 连接中添加了以下选项以模拟 --ssl 选项

   PDO::MYSQL_ATTR_SSL_CA => true,
   PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,

这是我的测试代码片段:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$options = [
    PDO::MYSQL_ATTR_SSL_CA => true,
    PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
];

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password, $options);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

数据库版本:MariaDB 10.5

4

0 回答 0