2010-12-10 116 views
1

我有2台服务器。在#1远程数据库访问被禁用。数据库非常庞大(〜1GB),因此无法在phpMyAdmin中将其转储,因为它会崩溃并挂起连接。我没有SSH访问权限。我需要将整个数据库复制到#2(我几乎可以设置所有内容)。通过HTTP复制MySQL数据库

我的想法是在#1上使用某种HTTP访问层。

例如,接受查询作为_GET/_POST参数并将结果作为HTTP主体返回的简单PHP脚本。

在#2(或我的桌面)上,我可以设置某种服务器应用程序,它会按顺序询问每个表中的每一行,甚至是当时的一行。

而我的问题是:你知道一些随时可用的应用程序与这样的流程?

BTW:#1只PHP,#2可以是PHP,Python的等

我不能运行在#1东西,所有的fopen,卷曲,插座,系统等将被禁用。我只能从PHP访问数据库,不允许远程连接

+0

您的MySQL是公开的还是以任何可能的方式远程访问? – TheLQ 2010-12-10 22:30:39

+1

得到ssh,http并不是为此设计的,而且你必须在现有协议存在的情况下编写很多控制(有rsync或openvpn可能无需完全ssh访问)。你也可以尝试serverfault。 – Unreason 2010-12-10 22:42:30

+1

虽然它提出了一个有趣的问题,但我必须问,为什么你不要问你的系统管理员为你迁移数据?你是否试图从一个你不应该访问的源头收集数据? – Will 2010-12-10 23:57:45

回答

0

很久以前我用Sypex Dumper这一点,刚刚离开打开的浏览器在晚上和第二天早上whle数据库转储是可以用FTP

0

不清楚服务器#1上有什么可用。

假设你只能运行PHP,你可能仍然能够

  • 运行scp from php并连接到服务器#2,发送文件一样,

  • 也许你可以使用PHP来运行本地命令在服务器#1上?在这种情况下,像从服务器运行#rsync through php 1可以工作

+0

我无法在#1上运行任何东西,所有fopen,卷曲,套接字,系统等都被禁用。我只能从PHP访问数据库,不允许远程连接。 – Coder 2010-12-10 23:43:14

0

这听起来对我来说,你应该联系主机的拥有者,并询问如果你能得到你的数据了莫名其妙。这是有点太愚蠢,你应该流你的整个数据库,并将其重新插入新的机器。它会在你获取数据的php服务器上吃掉很多资源。 (如果托管服务提供商已经是限制性的,那么您可能会限制您在一段时间内允许执行多少SQL操作)

虽然如果您被迫这样做,您可以执行select *从表和每一行将它转换为你在线上回显的json对象。这可以存储到磁盘上,然后用它插入。

+0

会工作,但非常缓慢/痛苦。同意与管理员联系将是获取数据的最佳途径。 – Will 2010-12-11 00:01:15

+0

托管服务提供商完全不可用 - 他在三年内不回复邮件,邮件和电话。然而,服务器和域名仍在继续工作,相当惊人。我认为这是唯一的选择 - 我只问在开始编写自己的软件之前是否有一个我可以使用的软件。 – Coder 2010-12-11 00:01:34

0

我怀疑你可以使用FTP访问两台服务器。

否则,你如何获得你的PHP文件。

也许你可以复制mysql数据库,如果你可以使用FTP访问它。

工程并非在所有情况下退房:http://dev.mysql.com/doc/refman/5.0/en/copying-databases.html欲了解更多信息。

或者你可以尝试这个链接中的选项:

http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/using-php-to-backup-mysql-databases.aspx

现在不要你的php是如何设置,虽然我能想象它可能需要一些时间来处理整个数据库。

最大的执行时间设置等

0

还有就是复制选项,如果至少有一台主机可通过TCP远程访问。以这种方式同步一个处女数据库会很慢,但它会有保留所有表格元数据的优势,否则您将通过执行选择/插入序列而丢失所有表格元数据。更多细节在这里:http://dev.mysql.com/doc/refman/5.0/en/replication.html

1

你能连接到服务器#1上的PHP远程MySQL服务器吗?

我知道你说过“没有远程连接允许”,但你没有具体提到这种情况。

如果可能,您可以从旧数据库中进行选择,并直接对服务器#2上运行的MySQL执行INSERT操作。

0

我不确定你是如何设法进入这种情况的。主机提供商显然是不合理的,你应该联系他们。你也应该尽快停止使用他们的服务(尽管这听起来像你想要做的事情)。

不幸的是,PHPMyAdmin不适合对数据至关重要的数据库操作,因为它有太多的错误和限制 - 你当然不应该依靠它来转储或恢复。

mysqldump是RELIABLY转储数据库并将其恢复的唯一方式,并且有数据完整和正确的好机会。如果您无法运行(本地或远程),恐怕所有投注都关闭。