2011-12-22 67 views
1

我有两个共享主机帐户,每个帐户都有自己的数据库(它自己的cPanel登录名)。假设这两个数据库具有相同的结构,我需要做些什么才能同步它们?在两个共享主机帐户上的数据库之间移动数据

同步脚本将位于与其中一个主机帐户连接的域上。我知道用于同步数据库的MySQL/PHP是相当简单的,但是这里让我困惑的是如何访问不同托管的数据库?

这不是一次性的事情,我需要能够通过点击按钮/链接来做到这一点。

唯一想到的就是让远程数据库定期将所有内容全部导出到.csv文件,并且在连接到第一个数据库的域上有脚本导入所有内容,但是这里有更好的方法吗?

如果整个问题很混乱,问题的要点是 - 有没有办法让域上的脚本访问完全不同的共享主机帐户上的数据库?

+0

为什么不将远程用户添加到要传输的数据库( @)并在脚本中使用它来访问那里的数据? – Efthymis 2011-12-22 12:47:49

+1

@Efthymis不是所有的主机都放弃了数据库服务器的主机名。 – 2011-12-22 12:51:26

+0

@SergeiTulentsev你是对的。我正在考虑我的主人。 :) – Efthymis 2011-12-22 12:53:09

回答

0

总之,没有,没有办法。

通常,主机提供商只允许DB访问localhost用户。意味着来自另一台机器的脚本无法访问它。

另外,它是什么样的同步?单向还是双向? (但是,我猜这是超出范围)

想到的唯一可行的解​​决方案是某种转储/恢复过程。

  • Web服务器A(数据源)定义了一个URL,通过请求它可以被人抛弃的DB

  • Web服务器B(数据的目的地)的内容定义一个带'Sync'按钮的页面。

  • 点击“同步”按钮后,服务器B将从服务器A中获取该URL,接收A的数据并将其与自己的数据合并。

注意

重要的是要确保数据导出URL。在该脚本中,您可以检查传入请求的IP,或者“access_token”的存在和正确性,或者您喜欢的任何内容。

+0

它应该是双向的,但我会以一种方式解决。如果我将它们移动到同一个托管服务提供商呢?那么会有什么问题吗? – robert 2011-12-22 12:55:51

+0

那么,您如何看待我的解决方案? – 2011-12-22 12:56:24

+0

这个网址在哪里?假设域名是domain1.com和domain2.com,并且同步按钮应该位于domain2上。 – robert 2011-12-22 12:57:23

0

您可以通过SSL/SSH或PHP隧道连接到数据库吗?如果是这样,请尝试dbForge Studio MySQL中的数据比较工具。

数据比较工具将允许您比较不同数据库之间的数据。您可以使用试用版进行测试。

相关问题