编辑:仅当您在控制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;
(替换User
并Host
使用您从上一个查询中获得的值。)然后再次检查密码的长度。现在应该是 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