【问题标题】:Move data between databases on two shared hosting accounts在两个共享主机帐户上的数据库之间移动数据
【发布时间】:2012-01-26 02:23:54
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 为什么不将远程用户添加到要传输的数据库 (@) 并在脚本中使用它来访问那里的数据?
  • @Efthymis 并非所有主机都放弃数据库服务器的主机名。
  • @SergeiTulentsev 你是对的。我想到了我的主人。 :)

标签: php mysql hosting


【解决方案1】:

简而言之,,没有办法。

通常,托管服务提供商只允许localhost 用户访问数据库。这意味着来自另一台机器的脚本无法访问它。

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

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

示例

  • webserver A(数据源)定义了一个 URL,通过请求可以获取 DB 的转储内容

  • webserver B(数据目标)定义了一个带有“同步”按钮的页面。

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

注意

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

【讨论】:

  • 它应该是双向的,但我会满足于一种方式。如果我将它们转移到同一个托管服务提供商怎么办?那会有什么问题吗?
  • 那么,你觉得我的解决方案怎么样?
  • 这个网址在哪里?假设域是 domain1.com 和 domain2.com,同步按钮应该在 domain2 上。
  • 随你喜欢(你必须在 domain1 上编写一个脚本来处理这个 URL 并将 Db 转储到响应中)
【解决方案2】:

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

数据比较工具可让您比较不同数据库之间的数据。您可以使用试用版对其进行测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多