【发布时间】:2019-01-16 19:44:16
【问题描述】:
是否可以将整个 mysql 查询重定向到另一台服务器?
我在不同服务器中有许多应用程序与单个数据库(Windows 机器)通信。
对于在不更改许多 php 文件中的任何 IP 的情况下传输数据库(到 linux 服务器)(有很多事情我不知道,因为不是我的创造,而是我的遗产),我能做些什么? 代理?端口转发?
【问题讨论】:
标签: mysql redirect proxy portforwarding
是否可以将整个 mysql 查询重定向到另一台服务器?
我在不同服务器中有许多应用程序与单个数据库(Windows 机器)通信。
对于在不更改许多 php 文件中的任何 IP 的情况下传输数据库(到 linux 服务器)(有很多事情我不知道,因为不是我的创造,而是我的遗产),我能做些什么? 代理?端口转发?
【问题讨论】:
标签: mysql redirect proxy portforwarding
Afaik,mysql 实现不提供此功能,但是,您可以使用 ssh 隧道“代理”连接,如下所示:
ssh -N ssh-user@host.domain -L 3306:127.0.0.1:3306
这需要服务于 mysql 的主机上的 ssh 服务器(在端口 3306 上),并且您可以通过 ssh 访问该机器。您在执行 php 的机器上运行命令,然后只要它运行,您就可以访问“localhost”上的 mysql 主机。所有请求都将安全地通过隧道传送到远程 mysql 服务器。
-L 开关指示 ssh 将本地端口 3306 上的 tcp 连接转发到您 ssh 到的机器上的端口 3306。
-N 开关指示 ssh 仅执行此操作而不运行命令。
如果添加 -f 开关,该命令将立即分叉到后台,这可能对这个用例有用。
您可能还想使用passwordless ssh
但是,这可能不是一个干净的生产解决方案。我将此方法仅用于开发目的,我建议您从长远来看修复您的代码库(即将您的 mysql 配置放在中心位置)。
【讨论】: