• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
皇图霸业谈笑间
更高、更快、更强
博客园    首页    新随笔    联系   管理    订阅  订阅
MySQL之ODBC方式连接问题1

 

今天在项目开发的时候遇到了MySQL数据库连接采用ODBC方式连接出现【高版本不兼容低版本客户端的问题】,其实这个问题之前就碰到过了,只是后来【偷巧】采用“MySQLClient”进行连接;

错误提示:

ERROR [HY000] [MySQL][ODBC 3.51 Driver]Client does not support authentication protocol requested by server; consider upgrading MySQL client

 

原因是因为你使用的mysql服务器版本中使用了新的密码验证机制,这需要客户端的版本要在4.0以上,原来的密码函数被改为old_password ();

这样使用password()生成的密码在旧的版本上的客户端就会出现问题咯。

 

目前已知解决方法:

 

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

 

 

也可以使用UPDATE和FLUSH PRIVILEGES:

 

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
           -> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;
 
记得要【FLUSH PRIVILEGES;】刷进数据库噢 。。。
 
 
但是今天我要讲的是,我都没有采用以上方式就搞定了,我换了一个ODBC客户端驱动就OK了,这个驱动是我们公司一个【大牛】给的。
mysql-connector-odbc-3.51.12-win32.msi (这里就不上传了,空间有限)
注意这个驱动跟其他驱动的区别噢,(如下图)
 
(认真看他的版本信息噢: 2.575.1117.00),装了这个版本就OK,其中缘由我也蒙蒙的 。。。。
 
参考:
http://hi.baidu.com/toby57/blog/item/637ebb5130aaf41d377abe7b.html
 

 

 

posted on 2009-02-11 17:34  布颜书  阅读(12421)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3