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 では、そのパラメータをクライアント ライブラリに渡す方法を見つけることができませんでした。TFDConnection パラメータに" secure-auth=off" を追加しても機能しません。そのパラメータは単に無視されます。

次のようにクライアントで my.ini を設定して secure-auth を無効にしようとしましたが、それも効果がありませんでした。

[client]
secure-auth=OFF

[mysql]
secure-auth=OFF

この時点で、私は立ち往生しているようです。プロトコル オプションの MYSQL_SECURE_AUTH および secure_auth フィールドは FireDAC.Phys.MySQLCli で定義されていますが、TFDConnection から MySQLcli を保持するクラスに移動できないようです。

私の問題を十分に明確に説明できたことを願っています。どんな助けでも大歓迎です。

4

1 に答える 1