使用DBExpress通过SSL连接到MySQL

时间:2011-08-17 16:53:18

标签: mysql delphi ssl dbexpress dbx

我想通过SSL连接到MySQL服务器。更具体地说,我想用DbExpress来做到这一点。

我过去曾通过ZeosLib使用SSL到MySQL。这很好用,但Zeos不允许我运行返回多个结果集的存储过程,这是该项目中的一个显示停止。

使用Zeos,我曾经设置过这样的SSL连接:

  Connection := TZConnection.Create(nil);
  Connection.Properties.Values['MYSQL_SSL']     := 'TRUE';
  Connection.Properties.Values['MYSQL_SSL_CA']   := 'c:/pathtocert/cert.pem';
  Connection.Properties.Values['MYSQL_SSL_CERT'] := 'c:/pathtocert/foo.pem';
  Connection.Properties.Values['MYSQL_SSL_KEY']  := 'c:/pathtocert/bar.pem';

我看到你可以用DBX做类似的事情:

Connection.Params.Values['drivername']  := 'MySQL';
Connection.Params.Values['compressed']  := 'True';
Connection.Params.Values['HostName']    := 'host';
Connection.Params.Values['Database']    := 'dbname';
Connection.Params.Values['user_name']   := 'me';
Connection.Params.Values['Password']    := '...';
Connection.Params.Values['encrypted']   := 'True'; // looks promising!

我看到你可以设置一个名为'encrypted'的参数,但我看不出如何配置证书的位置。 LibMySQL.dll需要那些才能设置其加密连接。

所以我的问题是:

  1. DBX允许我设置加密连接吗?
  2. 如果是这样,谁能告诉我该怎么做? :)

1 个答案:

答案 0 :(得分:1)

  1. Embarcadero MySQL dbExpress驱动程序不支持SSL连接。虽然实现起来非常简单。您可以将此请求记录到QC。
  2. 您可以考虑使用3d Party产品,例如AnyDAC。