2010-12-10 110 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轉儲數據庫並將其恢復的唯一方式,並且有數據完整和正確的好機會。如果您無法運行(本地或遠程),恐怕所有投注都關閉。