MySQL 4.1及以上版本使用基于密码散列算法的认证协议,这与旧客户端(包括PHP 4及其后的Xoops版本)所使用的协议不兼容。如果您将MySQL服务器升级到4.1,使用旧的PHP客户端尝试连接时可能会失败并显示上述错误消息。
为了解决这个问题,您最好告诉MySQL使用它的旧16位纯文本密码保护而非新的48位MD5散列值加密。最简单的方法是在MySQL DOS外壳中打开MySQL提示符并输入以下命令...
mysql> SET PASSWORD FOR
-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
例如,'some user'可以是'root'@'localhost'。在上面的示例中替换'newpwd'为要使用的密码。MySQL无法告诉你原始密码是哪个,因此你需要选择一个新的密码。
mysqli扩展(standing for "MySQL, Improved";PHP 5中的新功能)与MySQL 4.1及以上版本的改进密码散列兼容,为了使用这个更新的MySQL客户端库,您无需对MySQL进行特别配置。
更多详细信息请访问MySQL网站:
这里