mysql_connect():服务器请求客户端未知的身份验证方法[mysql_old_password]

Fer*_*ndo 10 php

我正在尝试运行 PHP 5.4.1(从源代码编译)但是当我尝试在 mysql 上连接时,我得到:

Warning: mysql_connect(): The server requested authentication method unknown to the client [mysql_old_password] in
Run Code Online (Sandbox Code Playgroud)

当使用 PHP 5.3/5.2 时,它可以正常工作。关于导致此问题的原因的任何想法?

mul*_*laz 11

尝试阅读:链接

MySQL 在(我认为)4.1 版中引入了更长的密码哈希,您的服务器可能仍在使用它们(检查您的 mysql 用户表中的 16 字节密码哈希)。较新的版本使用更长的密码哈希。您的服务器支持两者,但您的客户端 (php) 似乎仅支持此版本(及后续版本)中的新版本。

如果可能,请使用第一行链接中的解决方案,并使用新的哈希值再次设置您的密码,但请注意,如果您使用依赖旧密码的任何其他(旧)客户端,兼容性可能会中断。还尝试在 PHP 中寻找对 MySQL 的旧密码支持,但我不确定。


小智 11

ALTER USER 'mysqlUsername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlUsernamePassword';
Run Code Online (Sandbox Code Playgroud)