【问题标题】:Make a MySQL Connection Over a Proxy通过代理建立 MySQL 连接
【发布时间】:2013-11-28 19:27:43
【问题描述】:

我们有一个将值写入本地数据库的 Python 脚本。我们需要将此数据库移动到需要来自白名单 IP 地址的连接的远程主机,我们必须设置并忘记它。

我们的解决方案是使用 Python sctipt 另一部分的代理(HTTP GET 用于其他内容)。但是,MySQLDB 库似乎不允许使用身份验证的代理连接。

我们的问题...是否有任何其他可用的库,或者可能是其他库或 MySQL 解决方案来实现这一点?

我们找到了this,但这并没有什么可做的,而且似乎也不起作用。请注意,我们不能使用系统范围的代理。

TLDR:如何通过代理连接 MySQL 数据库来解决需要通过静态 IP 连接的问题?

【问题讨论】:

    标签: python mysql proxy


    【解决方案1】:

    我不知道您需要哪种类型的解决方案;永久的或暂时的。 但是你可以使用ssh-L 开关。

    ssh -L3307:localhost:3306 root@mysqlserver
    

    现在您可以连接到本地计算机上的端口 3307。 您应该定义host 并将其设置为127.0.0.1

    【讨论】:

    • 我们需要一个永久的解决方案,但连接是断断续续的。即 Python 将在运行时启动连接。你能扩展你的建议吗?我对 ssh 很了解。你是说用 Python 打开一个临时连接?
    • 这不是pythonic的方式。您将本地 3307 端口绑定到 mysql 服务器的 3306 端口,然后通过每种语言或 mysql-client 连接到 127.0.0.1:3307
    • 好的,谢谢,我会调查的。它会影响此客户端不同端口上的其他连接吗?我有其他服务无法通过代理。