2008-11-30 97 views
27

我有一個mysql數據庫填充和的Windows計算機上運行,​​沒有任何工具,將數據庫傳輸到另一臺計算機(運行Ubuntu的)?轉移Mysql數據庫到另一臺計算機

否則我只寫一個script將所有數據庫轉換爲SQL將其插入它在另一臺計算機上。只是想節省一些時間:)

謝謝大家。

回答

31

你說話的工具已經存在:mysqldump的

它轉儲出到SQL,然後你就可以複製到另一臺機器並重新加載。

如:

源:

mysqldump -u username -p databasename > dumpfile.sql 

然後使用ftp/rsync的/無論將文件移動到目標計算機,並在那裏創建一個空數據庫,導入並運行:

mysql -u username -p databasename < dumpfile.sql 

您還需要爲任何可能已經轉移的用戶設置權限,因爲它們不在數據庫中。

或者,您可以從mysql數據目錄複製文件 - 但mysqldump是最簡單/最可靠的方法。

值得注意的是,表格名稱可能會在一個系統上區分大小寫,當它們不在原文上時。它取決於兩端的配置 - 特別是文件系統的區分大小寫(否則)。

+1

(我想即使4.1)使用「-e」選項應該可以加快這個過程。 – MBCook 2009-03-03 22:15:39

+0

--opt優化 – 2009-03-03 22:31:22

2

所有版本的MySQL之間的磁盤文件是100%兼容的。你只需要注意文件名的大小寫,因爲它在Unix上很重要,而它有時只在Windows上。

並記住在複製之前停止MySQL。 MyISAM文件可以在運行時拷貝,但InnoDB文件並不是真正安全的,Windows默認使用InnoDB文件。

2

使用mysqldump時要小心字符集,特別是在windows上。我更喜歡明確地設置我的數據庫使用的字符集,並使用--result-file =文件而不是使用>運算符來防止某些東西被破壞。

0

mysqldump應該將其正確轉儲並保留數據庫中任何字符集。如果你不想問題,建議移到相同版本的mysql。

由mysqldump生成的文件不是文本文件,儘管出現,不要使用notepad.exe等編輯它,否則最終會遇到麻煩。

由第三方GUI工具生成的轉儲,尤其是phpmyadmin通常不準確,不一定會正確恢復。

17

而不是由一個導出數據庫之一,則可以將其所有出口用一個命令。然後導入它們。 例如。

mysqldump -u username -p --all-databases > c:\alldbs.sql 

PS-最大的好處是,你不會失去的用戶權限。

0

使用新的mysql工作臺(GUI工具),您可以輕鬆導出數據庫並將其導入到要遷移的數據庫。

1

從MySQL文檔: http://dev.mysql.com/doc/refman/5.0/en/copying-databases.html

shell> mysqldump --quick db_name | gzip > db_name.gz 

轉移包含數據庫內容到目標機器的文件,並有運行這些命令:如果這兩個版本都支持它

shell> mysqladmin create db_name 
shell> gunzip < db_name.gz | mysql db_name 
相關問題