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
/**
Class 数据库
*/
class 数据库 {
私人 $IP、$用户名、$密码、$数据库;
/**
- @var PDO
*/
私人$连接;
私人 $查询 = 0;
/**
- 数据库构造器。
- @param $IP
- @param $用户名
- @param $密码
- @param $数据库
*/
public 函数 __construct($IP, $username, $password, $database) {
$this->IP = $IP;
$this->用户名 = $用户名;
$this->密码 = $密码;
$this->database = $database;
}
/**
- 尝试连接到主机
*/
public 函数连接(){
$this->connection = new PDO('mysql:host='.$this->IP.';dbname='.$this->database.';charset=utf8', $this->用户名, $this->密码,数组(PDO::ATTR_PERSISTENT => true));
$this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
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/
我无法在 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
/**
Class 数据库 */ class 数据库 {
私人 $IP、$用户名、$密码、$数据库;
/**
- @var PDO */ 私人$连接; 私人 $查询 = 0;
/**
- 数据库构造器。
- @param $IP
- @param $用户名
- @param $密码
- @param $数据库 */ public 函数 __construct($IP, $username, $password, $database) { $this->IP = $IP; $this->用户名 = $用户名; $this->密码 = $密码; $this->database = $database; }
/**
- 尝试连接到主机 */ public 函数连接(){ $this->connection = new PDO('mysql:host='.$this->IP.';dbname='.$this->database.';charset=utf8', $this->用户名, $this->密码,数组(PDO::ATTR_PERSISTENT => true)); $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); }
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/