use*_*853 23 php mysql sql database database-connection
我收到以下错误:
数据库连接失败:mysqlnd无法使用旧的不安全身份验证连接到MySQL 4.1+.请使用管理工具使用该命令重置密码
SET PASSWORD = PASSWORD('your_existing_password')
.这将存储一个新的,更安全的哈希值
mysql.user
.如果在PHP 5.2或更早版本执行的其他脚本中使用此用户,则可能需要从my.cnf
文件中删除旧密码标志
我在我的本地机器上使用PHP 5.3.8和MySQL 5.5.16,我的主机(media temple)运行PHP 5.3 MySQL 5.0.51a.实时服务器上的版本比我机器上的版本旧.
如何修复此错误并从本地计算机连接到MySQL?
我知道这个帖子有类似的帖子,但是我已经尝试了所有这些帖子,但没有一个在工作.
Ram*_*nov 40
重启MySQL.如果不这样做,MySQL将继续使用旧的密码格式,这意味着您无法使用内置的PASSWORD()散列函数升级密码.
旧密码哈希值为16个字符,新的密码为41个字符.
连接到数据库,然后运行以下查询:
SELECT user, Length(`Password`) FROM `mysql`.`user`;
Run Code Online (Sandbox Code Playgroud)这将显示哪些密码采用旧格式,例如:
+----------+--------------------+ | user | Length(`Password`) | +----------+--------------------+ | root | 41 | | root | 16 | | user2 | 16 | | user2 | 16 | +----------+--------------------+
请注意,每个用户可以有多行(每个不同的主机规范一个).
要更新每个用户的密码,请运行以下命令:
UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
Run Code Online (Sandbox Code Playgroud)
最后,刷新权限:
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
来源:如何在PHP5.3上修复"mysqlnd无法使用旧身份验证连接到MySQL 4.1+"
归档时间: |
|
查看次数: |
63043 次 |
最近记录: |