首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Mysql与MysqlODBC连接异常:Client does not support authentication protocol requested.

2012-07-08 
Mysql与MysqlODBC连接错误:Client does not support authentication protocol requested...--------------

Mysql与MysqlODBC连接错误:Client does not support authentication protocol requested...

---------------------------------------华丽的分割线-----------------------------------------

问题描述

mysql5.0与mysqlodbc3.51建立连接:无法建立一个访问“mysql"数据库的系统dsn。(root帐号密码都没错,”cmd”下可以正常登录)

测试数据原时有错误提示:
[MySQL][ODBC 3.51 Driver] Client does not support authentication protocol requested by server;consider upgrading MySQL client

?

解决办法:

SET PASSWORD FOR 用户名@localhost = OLD_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. ?

?

1 楼 zhaorongrong0720 2012-06-13   你好,有问题想问你,我现在出现了同样的错误,请问你所写的解决办法:SET PASSWORD FOR 用户名@localhost = OLD_PASSWORD('密码');这段代码该写在哪里呢?或者能不能解释的具体点?谢谢了! 2 楼 hanyezhiyu8 2012-06-15   zhaorongrong0720 写道你好,有问题想问你,我现在出现了同样的错误,请问你所写的解决办法:SET PASSWORD FOR 用户名@localhost = OLD_PASSWORD('密码');这段代码该写在哪里呢?或者能不能解释的具体点?谢谢了!
方法1.用查询语句写。如果有Navicat或其它mysql界面管理工具,先打开数据库选查询工具,创建查询,将上述语句运行一下。
方法2.用mysql命令,如官方所写。如果有Navicat或其它mysql界面管理工具,在数据库上右键,选中“Concole”,打开命令行后按照博文中说明运行就行。

热点排行