我正在尝试使用 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 的任何类。
我希望我能够足够清楚地描述我的问题。任何帮助,将不胜感激。