今天在项目开发的时候遇到了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
                    
                
                
            
        
浙公网安备 33010602011771号