【问题标题】:Use proxy to connect to a mysql db through PDO使用代理通过 PDO 连接到 mysql 数据库
【发布时间】:2017-03-01 00:20:39
【问题描述】:

我正在尝试使用 PHP PDO(php 版本 5.3)连接到远程 mysql 数据库 我需要它通过代理。

我的连接现在看起来像这样。

$ldb = new PDO("mysql:dbname=users;host=my.remote.host.com", username, password);

我需要它通过代理,例如 http://proxy.mydomain.com:port

我已经搜索了 PDO 文档,但似乎找不到任何关于该主题的内容。有没有办法做到这一点,还是我走远了?

谢谢

【问题讨论】:

  • 这是可能的。出于兴趣,您为什么要这样做?这个问题的答案可能会影响人们的答案。我的回答是:您可以使用 SSH 隧道——只需让自己的 VPS 充当代理。这种方法也会为您加密流量。
  • 经过一番阅读,我很快意识到通过PDO的mysql并没有使用http协议,因此不应该受到http代理的影响。我的问题出在其他地方。
  • 即使不是通过代理,连接也可能会受到例如防火墙或类似的。所以@halfer 答案也是我用来通过防火墙的答案
  • 如果您对@Markus 的原始问题有答案,我相信人们会感兴趣(尽管看起来 OP 最终遇到了不同的问题)。你有什么配置东西可以提供给那些希望通过隧道连接 MySQL 的人吗?

标签: php mysql ssh proxy


【解决方案1】:

不完全与 PDO 相关,但您可以通过 SSH 建立隧道连接。此外,这还为您的连接提供加密。这对于通过代理甚至防火墙阻止端口 3306 尤其有用。然后您将连接到 localhost 上的隧道端口。

我正在通过 PuTTY 执行此操作。有几个关于如何实现端口隧道的教程,例如from the Kettering University(对于mysql来说是3306端口,而不是本教程中提到的3389端口,其余都一样)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 2012-08-17
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多