风云小站|Connecting Lives With Infinite New Discoveries » 求助专区 » 登陆数据库出错...(十分感谢会员:hogzh)

登陆数据库出错...(十分感谢会员:hogzh)

chenyongyun 初级会员
楼主 2008-03-04 08:48
私信 引用 编辑

登陆数据库出错...(十分感谢会员:hogzh)

本帖被 水蜜桃 执行锁定操作(2008-03-04)
还是关于PHP+Apache+MySQL的架设问题....前面一切都顺利通过,但到了http://localhost/phpMyAdmin/ 这一步,输入用户名root与密码后就出现出错提示...:phpMyAdmin - error
#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client

如图:


百度了一下解决方法:(刚好我的MySQL 版本为 4.12)
Quote:
出现这种问题也只有在MYSQL4.1.x以上版本,用4.0.x就没问题了

原因是因为你使用的mysql服务器版本中使用了新的密码验证机制,这需要客户端的版本要在4.0以上,原来的密码函数被改为old_password ();,这样使用password()生成的密码在旧的版本上的客户端就不好使了,而PHP中的MYSQL客户端都是3.23的(当然,mysqli的扩展除外),问题就在这了。

目前已知解决方法:

1、进入命令行下,转到MYSQL目录的BIN目录下,进入MYSQL命令行模式:
        例:d:\mysql\bin>mysql -uroot -p123        (用户root,密码123)
2、输入命令:
        mysql>set password for 'root'@'localhost'=old_password('123');        (注意冒号不能少)
3、退入MYSQL命令行:
        mysql>\q



按照上面的步骤做后再重启相关服务,仍然出错....这是为什么?难道真的要换MySQL版本?
[ 此贴被chenyongyun在2008-03-04 19:49重新编辑 ]
chenyongyun 初级会员
#1 2008-03-04 16:03
私信 引用 编辑

Quote:
引用第1楼jianxin于2008-03-04 10:45发表的  :
换个mtsql的版本或者phpamydmin的版本


中午下载了个mysql 4.0.26。。。安装时根本连密码都不要,应不是这样的吧?或者哪位朋友提供一下mysql 4.0.x的可下载地址。。。谢谢!
chenyongyun 初级会员
#2 2008-03-04 18:15
私信 引用 编辑

Quote:
引用第3楼freelive于2008-03-04 17:26发表的  :
我也觉得可能是版本之间的不兼容的问题。

帮你找到一些,***还比较快,试一下吧~

系列也比较多,自己选择吧~
.......



谢谢...偶也是找到的这里下载...但下载了不能用啊.你提供的这些 4.0.x的下载了解压连个安装文件都没有的,就解压到相应的文件夹后就能用?事实证明还是用不了....
chenyongyun 初级会员
#3 2008-03-04 18:43
私信 引用 编辑

Quote:
引用第5楼hogzh于2008-03-04 18:16发表的  :


晕~~~这里竟然是在研究PHP构建环境,累啊!!!!!!!!!!!!!!!!!!

顶楼问题可以:
.......



谢谢你的精彩回复.我等下回去试试,其实偶也只是没事来学学...我已经把mysql 4.1.x卸载了,等下回去再装上...
chenyongyun 初级会员
#4 2008-03-04 19:47
私信 引用 编辑

Quote:

1 请在开始菜单->程序->mysql  选择第一项

2 输入你安装mysql时设定的root用户的口令

3 shell> mysql

4 按照下面的格式输入命令,注意要替换括号中的内容,以你的mysql的实际情况进行替换)

mysql> update mysql.user SET Password = OLD_PASSWORD('newpwd')  where Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;

比如可以写成这样:

mysql> update mysql.user SET Password = OLD_PASSWORD('123456')  where Host = 'localhost' AND User = 'root' ;
mysql> FLUSH PRIVILEGES;

重启mysql,问题应该能够得到解决!


实在太感谢了,问题解决了!只是不明白你为何要写第三步(3 shell> mysql ),输入密码后就显示的mysql>而不是shell>....还有就是那两行的结尾都是分号(;)....论坛显示原因让偶老打成冒号...