常日,当客户端须要连接到做事器时,一样平常假设它们可以建立直接连接。现在,由于安全缘故原由或网络拓扑,常日须要利用代理或绕过防火墙。本篇文章先容了几种不同的方法来利用UniDAC连接MySQL做事器。
直接连接
直接连接到做事器意味着可以从客户端访问做事器主机,无需额外的路由和转发。这是最大略的情形。你须要操作的网络设置只有主机名和端口号。这也是与做事器通信的最快,最稳定的办法。建议你尽可能利用直接连接。
以下代码显示了其大略性:
UniConnection := TUniConnection.Create(self);UniConnection.ProviderName := 'MySQL';UniConnection.Server := 'localhost';UniConnection.Port := 3306;UniConnection.Username := 'root';UniConnection.Password := 'root';UniConnection.Connect;
通过HTTP隧道连接
有时,客户端打算机会被防火墙屏蔽,该防火墙不许可你直接在指定端口连接到做事器。如果防火墙许可HTTP连接,则可以将UniDAC与HTTP隧道软件一起利用以连接到MySQL做事器。UniDAC支持基于PHP脚本的HTTP隧道。
Web脚本隧道利用的示例可以是:你具有远程网站,并且禁止通过数据库做事器的端口访问其数据库。只许可通过HTTP端口80进行访问,并且你须要从远程打算机访问数据库,就像利用常日的直接连接一样。
你须要支配tunnel.php脚本,该脚本包含在Web做事器上的供应程序包中。它许可访问数据库做事器以利用HTTP隧道。该脚本必须通过HTTP协议供应。你可以验证是否可以利用Web浏览器访问它。该脚本可以在已安装的供应程序文件夹的HTTP子文件夹中找到, 例如:%Program Files Files%\Devart\UniDac for Delphi X\HTTP\tunnel.php。做事器的唯一哀求是PHP 5支持。
要连接到数据库,你该当为常日的直接连接设置TUniConnection参数,这些参数将从Web做事器端建立,协议指定MySQL选项到mpHttp,并设置以下特定于HTTP隧道的参数:
通过代理和HTTP隧道连接
考虑前一种情形,还有一个繁芜问题。
从客户端打算机是无法直接访问HTTP隧道做事器的。例如,客户端地址为10.0.0.2,做事器地址为192.168.0.10,MySQL做事器侦听端口3307。客户端和做事器处在不同的网络中, 因此客户端只能通过地址10.0.0.1的代理来访问它,该代理侦听端口为808。在这种情形下,除了设置特定Http的选项之外,你还必须设置代理特定选项,如下所示:
UniConnection := TUniConnection.Create(self);UniConnection.ProviderName := 'MySQL';UniConnection.Server := '192.168.0.10';UniConnection.Port := 3307;UniConnection.Username := 'root';UniConnection.Password := 'root';UniConnection.SpecificOptions.Values['Protocol'] := 'mpHttp';UniConnection.SpecificOptions.Values['HttpUrl'] := 'http://server/tunnel.php';UniConnection.SpecificOptions.Values['ProxyHostname'] := '10.0.0.1';UniConnection.SpecificOptions.Values['ProxyPort'] := '808';UniConnection.SpecificOptions.Values['ProxyUsername'] := 'ProxyUser';UniConnection.SpecificOptions.Values['ProxyPassword'] := 'ProxyPassword';UniConnection.Connect;
请把稳,设置代理特定选项会自动启用代理做事器。
附加信息
请记住,交通隧道或加密总是会增加CPU利用率和网络负载。建议你尽可能利用直接连接。
点击“理解更多”下载产品最新版
↓↓↓