我收到以下错误:
数据库连接失败:mysqlnd 无法使用旧的不安全身份验证连接到 MySQL 4.1+。请使用管理工具通过以下命令重置您的密码SET PASSWORD = PASSWORD('your_existing_password')
.
这将存储一个新的、更安全的哈希值mysql.user
。如果这
user 用于 PHP 5.2 或更早版本执行的其他脚本中,您可能会
需要从您的帐户中删除旧密码标志my.cnf
file
我在本地计算机上使用 PHP 5.3.8 和 MySQL 5.5.16,我的主机(媒体寺庙)正在运行 PHP 5.3 MySQL 5.0.51a。实时服务器上的版本比我机器上的版本旧。
如何修复此错误并从本地计算机连接到 MySQL?
我知道有与此类似的帖子,但我已经尝试过所有帖子,但没有一个起作用。
- 删除或注释 my.cnf 中的 old_passwords = 1
重新启动 MySQL。如果不这样做,MySQL 将继续使用旧的密码格式,这意味着您无法使用内置的 PASSWORD() 哈希函数升级密码。
旧密码哈希值是 16 个字符,新密码哈希值是 41 个字符。
这将显示哪些密码是旧格式,例如:
+----------+--------------------+
| user | Length(`Password`) |
+----------+--------------------+
| root | 41 |
| root | 16 |
| user2 | 16 |
| user2 | 16 |
+----------+--------------------+
请注意,这里每个用户可以有多行(每个不同的主机规格对应一行)。
要更新每个用户的密码,请运行以下命令:
UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
最后,刷新权限:
FLUSH PRIVILEGES;
Source: 如何修复 PHP5.3 上的“mysqlnd 无法使用旧身份验证连接到 MySQL 4.1+” http://blog.mixu.net/2010/06/06/quick-tip-how-to-fix-mysqlnd-cannot-connect-to-mysql-4-1-using-old-authentication-onphp5-3/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)