【问题标题】:MySQLdb through proxyMySQLdb 通过代理
【发布时间】:2009-06-22 15:11:05
【问题描述】:

我正在使用上面提到的 Python 库连接到 MySQL 服务器。到目前为止,我一直在本地工作并且一切正常,直到我意识到我必须在所有访问都通过代理的网络中使用我的程序。

现在有没有人可以设置由该库管理的连接以使用代理? 或者:你知道另一个可以处理这个问题的 MySQL 的 Python 库吗?

我也不知道代理服务器是否允许访问标准 MySQL 端口,或者我如何欺骗它来允许它。也欢迎对此提供帮助。

【问题讨论】:

    标签: python mysql proxy


    【解决方案1】:

    我使用ssh tunneling 来解决这类问题。 例如,我正在开发一个连接到 oracle 数据库的应用程序。

    在我的代码中,我编写连接到 localhost,然后从 shell 执行:

    ssh -L1521:localhost:1521 user@server.com
    

    如果你在 Windows 中,你可以使用PuTTY

    【讨论】:

      【解决方案2】:

      这里有很多不同的可能性。获得明确答案的唯一方法是与运行代理的人交谈。

      如果这是一个 Web 应用程序,并且 Web 服务器和数据库服务器都在代理的另一端,那么您根本不需要连接到 mysql 服务器,因为 Web 应用程序会为您完成.

      【讨论】:

      • 它们在代理的不同边
      【解决方案3】:

      您是否需要做任何特别的事情才能通过代理进行连接?

      我猜你只是为connect 函数提供了正确的参数。从the documentation 看来,您似乎可以使用connect 的参数指定主机名和端口号。

      像这样:

      connection = connect(host="dbserver.somewhere.com", port=nnnn)
      # etc..
      

      【讨论】:

      • 我不确定,这是我第一次编写应该通过代理访问内容的代码。我的猜测是我必须提供代理地址,就像您为浏览器设置代理一样。
      • 我建议您尝试提供代理的地址作为主机。询问代理的管理员您需要连接到哪个端口号才能将流量转发到 db 服务器。它可能是默认的 MYSQL 端口号。
      • 我认为这没有多大意义。如果我使用代理地址作为主机,我不会在任何地方指定我想要连接的服务器的地址。除非代理以某种方式设置为将特定端口转发到外部服务器,否则显然不是这样。
      • 我相信你需要先弄清楚这里的网络问题。我建议您联系负责网络的人员并说明您要完成的工作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      相关资源
      最近更新 更多