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时,它可以正常工作。什么原因导致此问题的任何想法? php — 费尔南多 source 在另一个问题中查看此答案:stackoverflow.com/a/50776838/1041047 — 罗宾·邱
10 尝试阅读以下内容:链接 MySQL在(我认为)4.1版中引入了更长的密码哈希,您的服务器可能仍在使用它们(检查mysql用户表中的16字节密码哈希)。较新的版本使用更长的密码哈希。您的服务器支持这两者,但是您的客户端(php)似乎仅支持此版本(及更高版本)中的新客户端。 如果可能的话,请使用第一行中的链接提供的解决方案,并使用新的哈希值再次设置您的密码,但是请注意,如果您使用的是任何其他依赖旧密码的(旧)客户端,兼容性可能会中断。也可以尝试在PHP中寻找对MySQL的旧密码支持,但是我不确定。 — 穆拉兹 source
9 ALTER USER 'mysqlUsername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlUsernamePassword'; — 邱彦宏 source 这个答案为我解决了这个问题serverfault.com/questions/295285/…– — Vishrant
3 我知道这是一个老话题,但是我解决了这个问题,而不必升级/降级任何东西。基本上,我在my.cnf文件中注释掉了old_passwords = 1行,重新启动了mysql,添加/修改了最终获得16字节哈希的用户,然后我又回退了对old_passwords = 1行的注释,然后重新启动了mysql。所以基本上: 评论old_passwords = 1 重启mysql 添加/修改用户 取消注释old_passwords = 1 重启mysql 这样就可以实现:1个用户使用新密码类型,而其他用户使用旧密码类型。每个人都可以登录!;) — 彼得鲁 source
1 如果您的MYSQL服务器正在使用旧的密码哈希,更改密码或升级服务器以获取可解决身份验证问题的最新密码哈希,则通常会发生这种情况。 — 克莱恩·德西尔瓦(Clain Dsilva) source 1 假设MySql将使用新的哈希,我只是再次更改了数据库用户的密码。有效。无需其他更改。 — eyal_katz '19
0 尝试升级MediaWiki安装时,我收到了类似的消息。我使用Netfirms作为托管服务提供商,并通过登录控制面板,进入MySQL区域并更改mediawiki使用的数据库来解决此问题。然后,我得以继续进行mediawiki升级。 — jedi34567 source