【问题标题】:Mysql redirect traffic to another serverMysql 将流量重定向到另一台服务器
【发布时间】:2019-01-16 19:44:16
【问题描述】:

是否可以将整个 mysql 查询重定向到另一台服务器?

我在不同服务器中有许多应用程序与单个数据库(Windows 机器)通信。

对于在不更改许多 php 文件中的任何 IP 的情况下传输数据库(到 linux 服务器)(有很多事情我不知道,因为不是我的创造,而是我的遗产),我能做些什么? 代理?端口转发?

【问题讨论】:

    标签: mysql redirect proxy portforwarding


    【解决方案1】:

    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 配置放在中心位置)。

    【讨论】:

    • 我需要在我的 linux 客户端上实现它吗?服务器端没有解决方案?记住那是windows服务器
    • 您肯定能够在 Windows 服务器上毫无问题地提供 ssh。如果您在 Windows 服务器上运行 php,则可能需要安装 openssh 才能使用这些命令行开关。
    • 如果您的客户端(从 mysql 的角度来看;运行 php 的位置,而不是 mysql-server)是 windows 服务器,并且您不想在那里安装 openssh:其他 ssh 客户端也提供端口转发.
    猜你喜欢
    • 2013-04-23
    • 1970-01-01
    • 2012-11-22
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2013-05-27
    相关资源
    最近更新 更多