当root口令为空时可以进入,改了密码后,再进就提示下面这些:
#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client
请问这是什么意思?怎么解决?
Nanu 回复于:2005-02-21 20:12:49
KAO!郁闷!
如果用MySQL4.1.X就会有这个问题!
4.0.X就没事儿!
niekui 回复于:2005-02-21 20:36:14
是的
niekui 回复于:2005-02-21 20:37:53
MySQL4.1.X就会有这个问题!
4.0.X就不会出现
剑心通明 回复于:2005-02-22 10:37:54
引用:原帖由 "niekui" 发表: MySQL4.1.X就会有这个问题!
4.0.X就不会出现
为什么啊?
Nanu 回复于:2005-02-22 11:02:27
不知道。。。
而且在PHPMYADMIN里对于MYSQL4.1.X的数据库中的中文显示的全是乱码。
如果将4.0.X数据升级为4.1.X,以后连在降回4.0.X都不行了,没有回头的机会。。。郁闷中。。。
关于4.1.X的中文乱码问题好像一直都每个有效的统一解决方式。。。:(
odin_free 回复于:2005-02-22 11:42:36
客户端版本问题
不明白就用4.0罢
i5snow 回复于:2005-02-22 11:59:54
我用的是my sql 5.0
Nanu 回复于:2005-02-22 13:08:41
晕。。。
MySQL官方不推荐用户使用5.0的。
除非为了测试一些新的应用,否则最好不要用5.0
i5snow 回复于:2005-02-22 20:36:38
那现在是不是用4.0是最好的?
shockman 回复于:2005-02-22 21:06:10
可能是mysql的加密方法变了,试试用old_password()函数加密
neeao 回复于:2005-03-06 13:55:47
官方的解释:
MySQL 4.1 and up uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older clients. If you upgrade the server to 4.1, attempts to connect to it with an older client may fail with the following message:
shell>; mysql
Client does not support authentication protocol requested
by server; consider upgrading MySQL client
To solve this problem, you should use one of the following approaches:
Upgrade all client programs to use a 4.1.1 or newer client library.
When connecting to the server with a pre-4.1 client program, use an account that still has a pre-4.1-style password.
Reset the password to pre-4.1 style for each user that needs to use a pre-4.1 client program. This can be done using the SET PASSWORD statement and the OLD_PASSWORD() function:
mysql>; SET PASSWORD FOR
->; 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
alternatively, use update and FLUSH PRIVILEGES:
mysql>; update mysql.user SET Password = OLD_PASSWORD('newpwd')
->; where Host = 'some_host' AND User = 'some_user';
mysql>; FLUSH PRIVILEGES;
Substitute the password you want to use for ``newpwd'' in the preceding examples. MySQL cannot tell you what the original password was, so you'll need to pick a new one.
Tell the server to use the older password hashing algorithm:
Start mysqld with the --old-passwords option.
Assign an old-format password to each account that has had its password updated to the longer 4.1 format. You can identify these accounts with the following query:
mysql>; select Host, User, Password FROM mysql.user
->; where LENGTH(Password) >; 16;
For each account record displayed by the query, use the Host and User values and assign a password using the OLD_PASSWORD() function and either SET PASSWORD or update, as described earlier.
For additional background on password hashing and authentication, see Section 5.5.9, "Password Hashing in MySQL 4.1".
Previous / Next / Up / Table of Contents
积德垂仁 回复于:2005-03-08 07:51:46
使用上面官方网站上的方法我成功解决了,phpmyadmin的问题,我的mysql用的是4.1的,在 win2000操作系统上.
谢谢各位!
llll 回复于:2005-03-08 11:51:38
引用:原帖由 "Nanu" 发表: 不知道。。。
而且在PHPMYADMIN里对于MYSQL4.1.X的数据库中的中文显示的全是乱码。
如果将4.0.X数据升级为4.1.X,以后连在降回4.0.X都不行了,没有回头的机会。。。郁闷中。。。
关于4.1.X的中文乱码问题好..........
因为4.1.x开始支持多国语言了,字符集会有N多选择,真是烦人 :em08:
我装了半天才搞出来的
关键是让phpmyadmin的设置和mysql的一样就好了
zcg 回复于:2005-03-09 16:30:07
mysql的password()函数好像改了,phpmyadmin 和 mysql 没统一,用old_password(密码)
就可以解决
uuhs_hiei 回复于:2005-03-09 16:34:55
mysql的官方Q&A还挺全
thinkeasy 回复于:2005-03-09 23:31:23
是PHP的问题吧,PHP默认不支持新的客户端,可以在不设置密码时登录,然后在MySQL数据库的USER表中,运行 update user set password=OLD_PASSWORD('密码') where user='root'
执行完了重启MySQL就可以用设置的密码登录了。
月下刀客 回复于:2005-03-12 19:31:15
编辑config.inc.php
liuwen 回复于:2005-03-16 17:05:29
我以前用的是4.0.20,换成4.1.10a倒入数据库后出现乱码,但是我重新编译后正常!装discuz2.5也正常!编译的时候有个参数很重要(看看./configure --help)是支持gbk的,一定要编译进去!
wdongtao 回复于:2005-03-17 10:26:11
引用:原帖由 "i5snow" 发表: 当root口令为空时可以进入,改了密码后,再进就提示下面这些:
#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client
请问这是什么意思?怎么解决?
升级客户端,我开始用mysql-front也是死活都连不上,后来升级了客户端的软件版本,一切ok了
HonestQiao 回复于:2005-03-27 12:03:27
如果你使用mysql4.1.x的话,你需要重新编译php而且设置mysql的配置为mysql4.1.x的位置
cdcchen 回复于:2005-03-28 16:13:58
win下把mysql/bin/下的libmysql.dll覆盖掉原来的老libmysql.dll就ok
linux下的话就需要重新编译了
LEOD 回复于:2005-03-31 13:26:07
我喜欢用3.23.58
yzjboy 回复于:2005-04-11 08:16:53
这是因为mysql4.0以上版本user表的结构与4.0以下版本的结构不一样所致。
MySQL 4.1 and up uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older clients. If you upgrade the server to 4.1, attempts to connect to it with an older client may fail with the following message:
shell>; mysql
Client does not support authentication protocol requested
by server; consider upgrading MySQL client
To solve this problem, you should use one of the following approaches:
Upgrade all client programs to use a 4.1.1 or newer client library.
When connecting to the server with a pre-4.1 client program, use an account that still has a pre-4.1-style password.
Reset the password to pre-4.1 style for each user that needs to use a pre-4.1 client program. This can be done using the SET PASSWORD statement and the OLD_PASSWORD() function:
mysql>; SET PASSWORD FOR
->; 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
alternatively, use update and FLUSH PRIVILEGES:
mysql>; update mysql.user SET Password = OLD_PASSWORD('newpwd')
->; where Host = 'some_host' AND User = 'some_user';
mysql>; FLUSH PRIVILEGES;
Substitute the password you want to use for ``newpwd'' in the preceding examples. MySQL cannot tell you what the original password was, so you'll need to pick a new one.
Tell the server to use the older password hashing algorithm:
Start mysqld with the --old-passwords option.
Assign an old-format password to each account that has had its password updated to the longer 4.1 format. You can identify these accounts with the following query:
mysql>; select Host, User, Password FROM mysql.user
->; where LENGTH(Password) >; 16;
For each account record displayed by the query, use the Host and User values and assign a password using the OLD_PASSWORD() function and either SET PASSWORD or update, as described earlier.
For additional background on password hashing and authentication, see Section 5.5.9, "Password Hashing in MySQL 4.1".
redor 回复于:2005-04-14 20:45:22
你的php不支持这个版本的mysql
zhaohengai 回复于:2005-04-16 15:32:17
哎,没办法呀
abfover 回复于:2005-04-27 12:54:32
引用:原帖由 "月下刀客"]编辑config.inc.php 发表:
这个是最简单的办法啊 虽然好像有点不安全 ...
xjzbw 回复于:2005-06-16 10:39:29
请使用以下两种方法之一
其一:
mysql>; SET PASSWORD FOR
->; 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
其二:
mysql>; UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
->; WHERE Host = 'some_host' AND User = 'some_user';
mysql>; FLUSH PRIVILEGES;
etony 回复于:2005-06-29 13:55:46
使用 OLD_PASSWORD()
awen08 回复于:2005-07-25 19:04:51
how to upgrade client?
My php & mysql is in the same machine.
zmcjs 回复于:2005-08-21 12:02:16
现在最成熟的就是mysql 4.0.X了
liuxyon 回复于:2005-10-26 09:26:52
重新编辑下PHPMYADMIN的登陆脚本就可以了. 我就使用新的PHPMYADMIN. 自己编辑登陆验证脚本就可以用了. 当然你要安装PHP5 和使用mysqli.dll
fnaps 回复于:2005-12-04 00:07:52
我怎么没出现过这个问题,我都是4.1x的
asia058 回复于:2006-02-24 00:30:47
修改config.inc.php文件中的
$cfg['Servers'][$i]['password']= '';
好像有两处,但是不要修改
$cfg['SQLValidator']['password'] = '';
就可以进入了。
wjhujun 回复于:2006-05-22 09:27:04
搞不定唉?说完整点?
嘛凡老兄了,谢谢了!!!
wjhujun 回复于:2006-05-22 09:31:25
引用:原帖由 xjzbw 于 2005-6-16 10:39 发表
请使用以下两种方法之一
其一:
mysql>; SET PASSWORD FOR
->; 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
其二:
mysql>; UPDATE mysql.user SET Password = OLD_PASSWORD('ne ...
搞不定唉?说完整点?
嘛凡老兄了,谢谢了!!!
villain 回复于:2006-05-25 17:22:25
呵呵 楼上正解,我以前也碰到过这个现象,函数不一样,没办法,只好这么改了。
zhanglp888 回复于:2006-05-28 14:46:04
updata user set password = oldpassword("新密码") where user = "root";
就行了!
dalarge 回复于:2006-05-31 15:28:07
楼上正解,我就是这么解决的,但是乱码问题我一直也没解决了,mysql4。0x升到4。1x后discuz出现乱码,就降不回4.0x了...加参数加了个便。。。
|