【问题标题】:"cannot connect using the old insecure authentication" but I have no old passwords?“无法使用旧的不安全身份验证进行连接”但我没有旧密码?
【发布时间】:2015-10-31 10:01:13
【问题描述】:

标准错误,我自己的情况没有解决方案:

mysqlnd 无法使用旧的不安全身份验证连接到 MySQL 4.1+。请使用管理工具通过命令 SET PASSWORD = PASSWORD('your_existing_password') 重置密码。

这将在 mysql.user 中存储一个新的、更安全的哈希值。如果此用户在 PHP 5.2 或更早版本执行的其他脚本中使用,您可能需要从 my.cnf 文件中删除 old-passwords 标志 [2000]

我已经用谷歌搜索了很多,尝试了不同的建议,但我现在仍然不知道该尝试什么,因为我在 MySQLManager 中进行了这样的查询:

SELECT LENGTH(Password) FROM mysql.user;
show variables like 'old_passwords';

我得到了这样的答案:

LENGTH(Password)
41
41
41
old_passwords: OFF

这似乎是密码的正确哈希方法(不是 16),正确的 old_password 值(OFF),但我无法修复错误,甚至不知道我应该尝试什么。 我使用 OpenServer 5.2.2,与:

数据库服务器:

  • 服务器:127.0.0.1 通过 TCP/IP
  • 服务器类型:MySQL
  • 服务器版本:5.5.45 - MySQL 社区服务器 (GPL)
  • 协议版本:10
  • 用户:max@localhost
  • 服务器编码:UTF-8 Unicode (utf8)

网络服务器:

  • Apache/2.2.31 (Win32)
  • 版本客户端数据库:libmysql - mysqlnd 5.0.8-dev - 20102224
  • PHP 扩展:mysqli

UPD:旧版本的 php 代码可以用旧的 16 位代码加密密码吗?也许是这个原因?

【问题讨论】:

  • 你使用 MySQLManager 的用户是否有创建用户和授予权限的权限?
  • 是的,他拥有“所有特权”

标签: php mysql


【解决方案1】:

未解决,但已解决-我已经从站点源数据库导出数据库,未选中“以十六进制保存二进制字段”选项,下载了新版本的php站点-然后写了正确的用户名和密码,一切正常

【讨论】:

    猜你喜欢
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 2010-12-07
    • 2020-06-24
    • 2011-09-25
    相关资源
    最近更新 更多