Mysql 认证

Mysql authentication

我无法在 wamp 中连接我的数据库。我已经做了大约 5 年了,所以我有点生疏了。我将 Mysql 升级到 8.0,但遇到错误

 Fatal error: Uncaught PDOException: PDO::__construct(): The server requested authentication method unknown to the client [sha256_password] in C:\wamp64\www\dirtyosrs\assets\lib\core\Database.class.php:34 Stack trace: #0 C:\wamp64\www\dirtyosrs\assets\lib\core\Database.class.php(34): PDO->__construct('mysql:host=;dbn...', NULL, NULL, Array) #1 C:\wamp64\www\dirtyosrs\assets\lib\init.php(34): Database->connect() #2 C:\wamp64\www\dirtyosrs\templates\header.php(8): require_once('C:\wamp64\www\d...') #3 C:\wamp64\www\dirtyosrs\index.php(1): include('C:\wamp64\www\d...') #4 {main} Next PDOException: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client in C:\wamp64\www\dirtyosrs\assets\lib\core\Database.class.php on line 34

PDOException: PDO::__construct(): The server requested authentication method unknown to the client [sha256_password] in C:\wamp64\www\dirtyosrs\assets\lib\core\Database.class.php on line 34

我刷新了我的权限并将插件更改为 root 上的本地插件。我在这一点上感到难过。有人可以帮助我吗?

这是我的数据库 class 到第 37 行

<?php

/**

Mysql 8 自 2018 年以来具有一种新的默认类型的安全身份验证方法 (sha2),该方法很难在本地主机上运行。为了继续使用传统的auth方式,我在我的Dockerfile中是这样做的:

command: --default-authentication-plugin=mysql_native_password

如果您手动设置,则必须在数据库设置中 运行 default-authentication 命令。

更多信息在这里:https://mysqlserverteam.com/upgrading-to-mysql-8-0-default-authentication-plugin-considerations/