本地 Intranet 应用程序(基于 php 构建)可以查询存储在异地位置的 mysql 数据库吗?

Posted

技术标签:

【中文标题】本地 Intranet 应用程序(基于 php 构建)可以查询存储在异地位置的 mysql 数据库吗?【英文标题】:Can local intranet application (built on php) query mysql database stored in offsite location? 【发布时间】:2011-05-28 13:26:44 【问题描述】:

我有一个本地 Intranet 应用程序,它在我们办公室的基本 WAMP 服务器上运行。每天早上,我们的一名团队成员手动将我们的内部 mysql 数据库与我们的外部 mysql 数据库(我们在线注册发生的地方)同步。如果白天对内网应用程序进行了更改,则直到第二天才会反映在外部数据库上。

我想知道是否可以(基本上)从我们办公室内的 wamp 或 xampp 服务器通过隧道连接到外部 mysql 连接并“实时”工作。

有人有什么运气或建议吗?

【问题讨论】:

【参考方案1】:

Yes

复制可以将来自一台 MySQL 数据库服务器(主服务器)的数据复制到一台或多台 MySQL 数据库服务器(从服务器)。复制是异步的——从属不需要永久连接来接收来自主控的更新。这意味着更新可以通过长距离连接进行,甚至可以通过临时或间歇性连接(如拨号服务)进行。根据配置,您可以复制数据库中的所有数据库、选定的数据库,甚至是选定的表。

如果直接使用外部服务器,性能可能会受到影响。千兆 LAN 可能比您的 Internet 连接快一千倍 - 尤其是 ADSL 连接的上传速度。

【讨论】:

据我了解,复制只能以一种方式工作。在这种情况下,“从属”和“主”都可以并且将会发生变化(新注册发生一次/一次变化;对成员资料的更改是在内部完成的,一次变化) @JM4 是的。 This article 讨论双向复制。也许您应该按照 codethis 的建议使用远程 MySQL 服务器测试性能。我还将研究是否可以将整个应用程序移动到其他位置(因为 HTTP 可能比 WAN 链接上的 DBMS 协议更有效)。另一种方法是使用 Web 服务在外部数据库上为您的 Intranet 服务器提供配置文件更新服务。【参考方案2】:

只需让您的内部应用程序使用外部数据库。您可能需要向外部服务器添加权限以允许来自您的内部服务器 IP 的连接,否则这就像拥有一个需要相互访问的网络服务器和独立的数据库服务器。

在这里无法真正告诉您如何执行此操作 - 这完全取决于您的具体配置,我认为这有点复杂(而且过于专业),无法在 SO 上弄清楚。

【讨论】:

以上是关于本地 Intranet 应用程序(基于 php 构建)可以查询存储在异地位置的 mysql 数据库吗?的主要内容,如果未能解决你的问题,请参考以下文章

我的电脑通过 *** 连接,Android 模拟器无法访问本地 Intranet 站点

MVC 3/4 Intranet 应用程序自动/使用 Chrome 的静默身份验证

具有本地数据库的 Intranet

Intranet API 的 REST 身份验证缓存

VB .Net to PHP - 在 Intranet 上获取用户窗口登录

从 Internet 服务器(公共)调用 Intranet(私有)服务器上的 .php 页面