远程 MySQL 连接因“未知身份验证方法”而失败
当尝试建立与 MySQL 服务器的远程连接时,可怕的“未知身份验证方法”可能会遇到“身份验证方法”错误。当服务器的身份验证机制与客户端的身份验证机制不兼容时,就会出现此问题。
在这种特殊情况下,从本地计算机(MySQL 版本 5.5.27)连接到远程服务器(MySQL 版本 5.5)时遇到错误.23)。根本原因是两个服务器使用的密码哈希方法不兼容。
解决不兼容性
此问题的解决方案是更新密码哈希服务器匹配客户端使用的方法。在本例中,它涉及更新为 MySQL 4.1 及更高版本采用的较新的 41 字节密码格式。
更新密码哈希
ALTER USER 'yourusername'@'%' IDENTIFIED BY 'new_password';
其中“yourusername”是您的 MySQL 用户名,“new_password”是您的新密码。
FLUSH PRIVILEGES;
重新启动 MySQL 服务器以确保更改生效
修改客户端代码
密码更新后,修改您的连接代码如下:
$dsn = 'mysql:host=184.173.209.193;dbname=my_db_name;charset=utf8'; $options = array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', PDO::MYSQL_ATTR_DIRECT_QUERY => true ); try { $online_dbh = new PDO($dsn, 'myusername', 'new_password', $options); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Congratulations!"; } catch (PDOException $e) { echo $e->getMessage(); }
设置 PDO:: MYSQL_ATTR_DIRECT_QUERY 为 true 强制 PDO 使用更安全的连接方法,解决身份验证问题。
以上是为什么我的远程 MySQL 连接失败并显示'未知的身份验证方法”?的详细内容。更多信息请关注PHP中文网其他相关文章!