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


8

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

Warning: mysql_connect(): The server requested authentication method unknown to the client [mysql_old_password] in

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


在另一个问题中查看此答案:stackoverflow.com/a/50776838/1041047
罗宾·邱

Answers:


10

尝试阅读以下内容:链接

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

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



3

我知道这是一个老话题,但是我解决了这个问题,而不必升级/降级任何东西。基本上,我在my.cnf文件中注释掉了old_passwords = 1行,重新启动了mysql,添加/修改了最终获得16字节哈希的用户,然后我又回退了对old_passwords = 1行的注释,然后重新启动了mysql。所以基本上:

  • 评论old_passwords = 1
  • 重启mysql
  • 添加/修改用户
  • 取消注释old_passwords = 1
  • 重启mysql

这样就可以实现:1个用户使用新密码类型,而其他用户使用旧密码类型。每个人都可以登录!;)


1

如果您的MYSQL服务器正在使用旧的密码哈希,更改密码或升级服务器以获取可解决身份验证问题的最新密码哈希,则通常会发生这种情况。


1
假设MySql将使用新的哈希,我只是再次更改了数据库用户的密码。有效。无需其他更改。
eyal_katz '19

0

尝试升级MediaWiki安装时,我收到了类似的消息。我使用Netfirms作为托管服务提供商,并通过登录控制面板,进入MySQL区域并更改mediawiki使用的数据库来解决此问题。然后,我得以继续进行mediawiki升级。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.