发新话题
打印

MySQL4.1的用户密码问题

MySQL4.1的用户密码问题

mysql4.1以上版本连接时会出现以下错误:
Client does not support authentication protocol requested
by server; consider upgrading MySQL client
这是因为在mysql4.1以后的版本中用户验证方式与以前不同,php自带的老的client已经不适用了,解决办法如下:

#mysql -u root -p password
Enter passwod:xxxxxxx

mysql>use mysql;
mysql>update mysql.user set password=old_password('你的密码') where host='localhost' and user='你的mysql用户名';
mysql> flush privileges;
重新载入权限后就OK了。
网海拾贝 - 网贝NetBei.Com
但愿每个访问者都能有所收获

TOP

  虽然 MySQL 4.1.7 已经发布并成为官方推荐版本,但是 4.0.x 系列并没有停止更新和 bug 修复,其实现在服务器上的 MySQL 大多是 3.x 版本的,呵呵。

  在更新到 4.1.17 版本的 MySQL 后,发现需要使用 MySQLi 扩展方能正常使用数据库,否则会出现 1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client 的提示,这个很纳闷,我没有研究具体的问题,只是切换到 MySQLi 扩展,其实在给 root 加上密码前还是可以使用 MySQL 扩展的,可是给 root 加上密码后就出现了上述客户端版本太低的提示。

  目前已知解决方法:

先用root登录MYSQL服务器,执行

mysql>set password for user1@"localhost"=old_password('yourPassword');

  原因是因为你使用的mysql服务器版本中使用了新的密码验证机制,这需要客户端的版本要在4.0以上,原来的密码函数被改为old_password();,这样使用password()生成的密码在旧的版本上的客户端就不好使了,而PHP中的MYSQL客户端都是3.23的(当然,mysqli的扩展除外),问题就在这了。
网海拾贝 - 网贝NetBei.Com
但愿每个访问者都能有所收获

TOP

呵呵,有点看不懂^
欢迎来我的相册,记得留言哈

空有我佛慈悲之心
卻度不暸癡情

TOP

发新话题