FireDAC,将“secure-auth = OFF”传递给客户端库

时间:2014-10-24 12:58:18

标签: mysql delphi delphi-xe6 firedac

我尝试使用DelphiXE6中的FireDAC从安装了MySQL 5.6客户端库的客户端计算机连接到不支持安全密码的旧mysql服务器(4.1之前版本)。默认情况下,这样的连接将被客户端(而不是服务器)拒绝,从而产生错误:

[FireDAC][Phys][MySQL] Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)

现在,在命令行客户端上,让它工作就像添加--skip-secure-auth参数一样简单。以下工作正常:

mysql -h ipaddr -u user --password=mypass -D database --skip-secure-auth

但是,在FireDAC中,我无法找到将该参数传递给客户端库的方法。添加" secure-auth=off" TFDConnection参数不起作用,只是忽略该参数。

我确实尝试在客户端设置my.ini以禁用secure-auth,如下所示,但这也没有任何效果。

[client]
secure-auth=OFF

[mysql]
secure-auth=OFF

此时,我似乎陷入困境。协议选项的MYSQL_SECURE_AUTH和secure_auth字段在FireDAC.Phys.MySQLCli中定义,但我似乎无法从TFDConnection转到任何持有MySQLcli的类。

我希望我能够清楚地描述我的问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

听起来您最好的选择是修补您的客户端(单线修复),以便" secure-auth = OFF"按原样运作:http://bugs.mysql.com/bug.php?id=75425