想象一下:
我有三台机器。 M1有我的客户端程序。M3是mysql服务器。但M1不能直接连接M3。 M1 可以直接使用 ssh 或其他方式访问 M2。 M2可以直接访问M3。那么,M1上的客户端程序如何使用python通过M2连接mysql服务器M3并执行sql,例如select子句
。是否可能以及如何做到这一点?谢谢。
最佳答案
也许MySQL Proxy对你的情况很有用 - 它只是一个 alpha。
还有一种方法,可以使用 SSH port forwarding 来 bing M2 上 M3 的 mysql 端口.
MySQL 的默认 TCP 端口是 3306 。相关的 SSH 命令行为
ssh M2 -L M1_port:M3:3306
(您需要用 M2 的主机名/IP 地址替换 M2,并将 M1_port 作为 M1 上以前未使用的端口,例如 3306(如果您不在 M1 上运行 MySQL 服务器)
M1 上的 MySQL 客户端应通过端口 M1_port
连接到 M1/localhost,所有这些流量都将通过端口 3306 隧道传输到 M3。
关于python从第三台机器连接到mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24134870/