当前位置: 首页 > 面试题库 >

无法使用旧的身份验证连接到MySQL 4.1+

阳狐若
2023-03-14
问题内容

我试图连接到http://bluesql.net上的mySQL数据库,但是当我尝试连接时,出现此错误:

Connect Error (2000) mysqlnd cannot connect to MySQL 4.1+ using old authentication

我已经研究过了,它与MySQL 4.1之前使用的一些旧密码方案有关。较新的版本可以选择使用旧密码,我已阅读过此密码可能会导致此问题。

我正在运行php 5.3,并与mySQLi(新的mysqli(…))连接。我希望我可以在代码中做一些事情以连接到bluesql.net上的数据库-
显然我不控制如何设置他们的数据库。降级php版本不是一种选择。

谁有想法?


问题答案:

编辑:仅当您在控制MySQL服务器时,这才适用…如果您不看看Mysql密码哈希方法old vs
new

首先用SQL查询检查

SHOW VARIABLES LIKE 'old_passwords'

(在MySQL命令行客户端,HeidiSQL或任何您喜欢的前端中)默认情况下是否将服务器设置为使用旧密码架构。如果返回,则old_passwords,Off您恰好在user表中有旧密码条目。MySQL服务器将对这些帐户使用旧的身份验证例程。您只需为该帐户设置一个新密码,就会使用新例程。

您可以查看mysql.user表格(使用有权访问该表格的帐户)来检查将使用哪个例程

SELECT `User`, `Host`, Length(`Password`) FROM mysql.user

对于使用旧密码的帐户,这将返回 16 ;对于使用新密码的帐户,它将返回 41 (对于完全没有密码的帐户,将返回0;您可能还需要注意这些)。
使用MySQL前端的用户管理工具(如果有)或

SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');
FLUSH Privileges;

(替换UserHost使用您从上一个查询中获得的值。)然后再次检查密码的长度。现在应该是 41,
并且您的客户端(例如mysqlnd)应该能够连接到服务器。

另请参见MySQL文档: http://dev.mysql.com/doc/refman/5.0/zh-CN/old-
client.html
http://dev.mysql.com/doc/refman/5.0/zh-CN/password -hashing.html
* http://dev.mysql.com/doc/refman/5.0/en/set-password.html



 类似资料:
  • 问题内容: 我知道有很多类似的问题,实际上我已经阅读了全部(9)。 但是,它们都不能解决我的问题。 我有一个共享主机包(最低要求)。我的软件包中包括域名,以及托管MySQL服务器的单独IP地址。对于开发,我使用PHP 5.4的开发服务器,并使用托管包中提供的MySQL服务器。 该问题仅在我的PC上出现,因为我已经安装了PHP 5.4,但是我的Web主机已经安装了PHP 5.2.17,并且不会升级。

  • 问题内容: 我收到以下错误: 数据库连接失败:mysqlnd无法使用旧的不安全身份验证连接到MySQL 4.1+。请使用管理工具通过命令重置密码。 这将在中存储一个新的,更安全的哈希值。如果此用户在PHP 5.2或更早版本执行的其他脚本中使用,则可能需要从文件中删除old-passwords标志 我在本地计算机上使用PHP 5.3.8和MySQL 5.5.16,并且我的主机(媒体寺庙)正在运行PH

  • 我在Ubuntu上安装了自己的Jitsi实例,遵循使用官方软件包的文档。这很有魅力。但我不想有一个完全开放的实例,所以我遵循了https://github.com/jitsi/jicofo#secure-域需要登录才能创建会议。 据我所知,我完全遵循了文档,但在重新启动Jitsi后,我无法再创建会议。我看到以下行为: 私人网址:我得到一个消息,会议还没有开始,还有一个“我是主持人”按钮。如果我按下

  • 我正在尝试配置laravel的auth以适合我的db。但无论我做什么,都会覆盖像或在LoginController中,它忽略所有内容。有人知道如何用不同的数据库参数化laravel的身份吗? 以下是我在LoginController中更改的内容: 在用户模型中: 编辑:config/auth.php: ]; LoginController: 名称空间App\Http\Controllers\Aut

  • 我在这方面看到了很多解决方案。我尝试了建议的命令eval 然后添加键 如何解决这个问题。在Mac上真的很新。