2011-08-23 48 views
-1

我正在考慮切換到一個新的主機提供商,我想將我的數據庫轉移到我的生產站點到新的主機提供商。我正在使用mysql。我需要採取什麼步驟來傳輸我的數據庫?交換主機想要傳輸我的數據庫

感謝任何幫助。

謝謝

布賴恩

回答

1

假設一個相對簡單的應用程序(PHP,類似的東西),一個應用服務器,一臺數據庫服務器,然後簡要:

在新主機上,創建您在舊主機數據庫上使用的數據庫上必需的帳戶。

將應用程序代碼複製過來。

「鎖定」舊主機上的應用程序,所以沒有數據的變化可能會發生(如果這是可行的。)

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html是你的朋友。轉儲架構和數據,並將其捕獲到文件中。下面是我用來轉儲有例子的登錄數據庫exampledb命令:

mysqldump --add-drop-table -u example -p exampledb > output.sql

(該--add-drop-table使得它,如果你需要在以後更容易重新運行腳本,但它確實創造腳本會破壞你的數據庫,所以請小心如何運行它。)

現在將output.sql文件複製到您的新主機中(可能使用scp)。

在新主機上,運行mysql以使用來自舊主機的模式和數據構建數據庫。我用這樣的命令之一,假設用戶「示例」和「exampledb」的數據庫名稱:

mysql -u example -p exampledb < output.sql

(注意運行此只在新主機將抹殺你的數據庫。)

好的是,你有一個新的機器空白的石板。你可以在機器上不斷嘗試不同的東西而不會破壞任何東西。

在新主機上打開應用程序。測試。如果已經有一段時間了,您可能需要進行更改以使您的代碼升級到更新版本的語言。 (我在我的情況下,但也許你更好地保持您的代碼更新。)

關閉舊主機上的應用程序。

點DNS /路由器/無論新主機。

我錯過了什麼? (剛剛通過這個移動我的愚蠢的網站到一臺新機器。)

+0

mysqldump是否創建文件? – Brian

+0

我用它的方式,它寫到標準輸出(本質上是控制檯)。所以我只是將它重定向到一個文件。例如''mysqldump [parameters]> output.sql'。 – Marvo

+0

那麼從控制檯運行mysqldump test> output.sql?從新主機運行mysqlimport output.sql?我會在哪裏放置output.sql文件? – Brian

0

這很簡單,特別是對於一個單一的數據庫?

mysqldump其後是mysqlimport

MySQL Dump

生成。sql文件是你所需要的,因爲它將包含所有的表信息,例如CREATE INDEXES,當你通過所有的插入操作時,將會添加索引。

如果您對命令行感到困惑,我可以建議使用Navicat Lite。它是免費的,是我見過的最好的GUI。

Navicat Lite

+0

因此,例如,從phpmyadmin我會運行mysqldump測試?這會自動創建一個文件嗎? – Brian

+0

你的SQL有多大?當涉及到任何大的事情時,phpmyadmin確實不是那麼棒。 – Layke

相關問題