【发布时间】:2009-06-22 15:11:05
【问题描述】:
我正在使用上面提到的 Python 库连接到 MySQL 服务器。到目前为止,我一直在本地工作并且一切正常,直到我意识到我必须在所有访问都通过代理的网络中使用我的程序。
现在有没有人可以设置由该库管理的连接以使用代理? 或者:你知道另一个可以处理这个问题的 MySQL 的 Python 库吗?
我也不知道代理服务器是否允许访问标准 MySQL 端口,或者我如何欺骗它来允许它。也欢迎对此提供帮助。
【问题讨论】:
我正在使用上面提到的 Python 库连接到 MySQL 服务器。到目前为止,我一直在本地工作并且一切正常,直到我意识到我必须在所有访问都通过代理的网络中使用我的程序。
现在有没有人可以设置由该库管理的连接以使用代理? 或者:你知道另一个可以处理这个问题的 MySQL 的 Python 库吗?
我也不知道代理服务器是否允许访问标准 MySQL 端口,或者我如何欺骗它来允许它。也欢迎对此提供帮助。
【问题讨论】:
我使用ssh tunneling 来解决这类问题。 例如,我正在开发一个连接到 oracle 数据库的应用程序。
在我的代码中,我编写连接到 localhost,然后从 shell 执行:
ssh -L1521:localhost:1521 user@server.com
如果你在 Windows 中,你可以使用PuTTY
【讨论】:
这里有很多不同的可能性。获得明确答案的唯一方法是与运行代理的人交谈。
如果这是一个 Web 应用程序,并且 Web 服务器和数据库服务器都在代理的另一端,那么您根本不需要连接到 mysql 服务器,因为 Web 应用程序会为您完成.
【讨论】:
您是否需要做任何特别的事情才能通过代理进行连接?
我猜你只是为connect 函数提供了正确的参数。从the documentation 看来,您似乎可以使用connect 的参数指定主机名和端口号。
像这样:
connection = connect(host="dbserver.somewhere.com", port=nnnn)
# etc..
【讨论】: