1

我正在尝试使用 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 以禁用安全身份验证,但这也没有任何效果。

[client]
secure-auth=OFF

[mysql]
secure-auth=OFF

在这一点上,我似乎陷入了困境。协议选项的 MYSQL_SECURE_AUTH 和 secure_auth 字段在 FireDAC.Phys.MySQLCli 中定义,但我似乎无法从 TFDConnection 转到包含 MySQLcli 的任何类。

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

4

1 回答 1

0

听起来您最好的选择是修补您的客户端(单行修复),以便“secure-auth=OFF”正常工作:http ://bugs.mysql.com/bug.php?id=75425

于 2015-01-06T16:20:18.220 回答