认证插件不支持。
你的PHP应用在使用PDO连接MySQL时遇到了认证插件不兼容的问题:
'pdo_code' => 'HY000',
'db_code' => 2059,
'db_error' => 'Authentication plugin not supported'
版本兼容性说明
此错误通常发生在MySQL 8.0及以上版本中,当客户端使用旧的认证方式(如mysql_native_password)连接时,而服务器期望使用新的认证插件(如caching_sha2_password)。
$options = [
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4",
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
];
try {
$pdo = new PDO(
"mysql:host=localhost;dbname=test;charset=utf8mb4",
"username",
"password",
$options
);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';