我有一個mysql
數據庫填充和的Windows計算機上運行,沒有任何工具,將數據庫傳輸到另一臺計算機(運行Ubuntu的)?轉移Mysql數據庫到另一臺計算機
否則我只寫一個script
將所有數據庫轉換爲SQL
和將其插入它在另一臺計算機上。只是想節省一些時間:)
謝謝大家。
我有一個mysql
數據庫填充和的Windows計算機上運行,沒有任何工具,將數據庫傳輸到另一臺計算機(運行Ubuntu的)?轉移Mysql數據庫到另一臺計算機
否則我只寫一個script
將所有數據庫轉換爲SQL
和將其插入它在另一臺計算機上。只是想節省一些時間:)
謝謝大家。
你說話的工具已經存在:mysqldump的
它轉儲出到SQL,然後你就可以複製到另一臺機器並重新加載。
如:
源:
mysqldump -u username -p databasename > dumpfile.sql
然後使用ftp/rsync的/無論將文件移動到目標計算機,並在那裏創建一個空數據庫,導入並運行:
mysql -u username -p databasename < dumpfile.sql
您還需要爲任何可能已經轉移的用戶設置權限,因爲它們不在數據庫中。
或者,您可以從mysql數據目錄複製文件 - 但mysqldump是最簡單/最可靠的方法。
值得注意的是,表格名稱可能會在一個系統上區分大小寫,當它們不在原文上時。它取決於兩端的配置 - 特別是文件系統的區分大小寫(否則)。
你可以使用任何GUI工具,如MySQL管理員進行備份(http://dev.mysql.com/downloads/gui-tools/在Windows,資質Ubuntu上安裝的MySQL管理員)或phpMyAdmin的(在Windows http://www.phpmyadmin.net/home_page/index.php,資質Ubuntu上安裝phpMyAdmin的),然後在恢復它其他電腦。
所有版本的MySQL之間的磁盤文件是100%兼容的。你只需要注意文件名的大小寫,因爲它在Unix上很重要,而它有時只在Windows上。
並記住在複製之前停止MySQL。 MyISAM文件可以在運行時拷貝,但InnoDB文件並不是真正安全的,Windows默認使用InnoDB文件。
使用mysqldump時要小心字符集,特別是在windows上。我更喜歡明確地設置我的數據庫使用的字符集,並使用--result-file =文件而不是使用>運算符來防止某些東西被破壞。
mysqldump應該將其正確轉儲並保留數據庫中任何字符集。如果你不想問題,建議移到相同版本的mysql。
由mysqldump生成的文件不是文本文件,儘管出現,不要使用notepad.exe等編輯它,否則最終會遇到麻煩。
由第三方GUI工具生成的轉儲,尤其是phpmyadmin通常不準確,不一定會正確恢復。
我經常發現自己使用這種單行程的一些變化來複制網絡上的數據庫。
mysqldump --opt --compress --user=username database | mysql --user=username2 --password=p2 --host=hostB -D database -C database
這本來我讀到這裏:
http://www.igvita.com/2007/10/10/hands-on-mysql-backup-migration/
而不是由一個導出數據庫之一,則可以將其所有出口用一個命令。然後導入它們。 例如。
mysqldump -u username -p --all-databases > c:\alldbs.sql
PS-最大的好處是,你不會失去的用戶權限。
使用新的mysql工作臺(GUI工具),您可以輕鬆導出數據庫並將其導入到要遷移的數據庫。
從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
(我想即使4.1)使用「-e」選項應該可以加快這個過程。 – MBCook 2009-03-03 22:15:39
--opt優化 – 2009-03-03 22:31:22