是否可以将整个mysql查询重定向到另一台服务器?
我在differents服务器中有许多与单个数据库(Windows计算机)通信的应用程序。
对于要传输数据库(到linux服务器)而无需更改许多php文件中的任何IP(有很多事情我不知道,因为这不是我的创造,而是我的遗产),我可以做些什么吗? 代理?端口转发?
答案 0 :(得分:0)
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配置放在中央位置)。