2008-11-30 37 views
27

Ich habe eine mysql Datenbank gefüllt und läuft auf einem Windows- Computer, gibt es eine Tool, um die Datenbank auf einen anderen Computer zu übertragen (Lauf Ubuntu)?Übertragung Mysql-Datenbank auf einen anderen Computer

Else werde ich schreibe nur ein script die Datenbank alle in SQL zu nehmen und es auf dem anderen Computer ein. Nur versuchen, etwas Zeit zu sparen :)

Danke euch allen.

Antwort

31

Das Werkzeug, das Sie bereits sprechen vorhanden ist: mysqldump

Es Dumps SQL aus, die Sie dann auf eine andere Maschine und re-load kopieren.

zB:

auf Quelle:

mysqldump -u username -p databasename > dumpfile.sql 

Dann nutzen Sie ftp/rsync/was auch immer Sie die Datei auf der Zielmaschine zu bewegen, und dort, erstellen Sie eine leere Datenbank in importieren und ausführen:

mysql -u username -p databasename < dumpfile.sql 

Sie werden auch die Berechtigungen für alle Benutzer einrichten müssen, die auch übertragen worden sein, da sie in der Datenbank nicht gehalten werden.

Alternativ können Sie die Dateien aus dem mysql-Datenverzeichnis kopieren - aber mysqldump ist die einfachste/zuverlässigste Methode.

Beachten Sie, dass die Tabellennamen auf einem System case sensitive werden können, wenn sie nicht auf dem Original waren. Es hängt von der Konfiguration an beiden Enden ab - insbesondere die Groß-/Kleinschreibung (oder nicht) des Dateisystems.

+1

Wenn beide Versionen unterstützen sie (ich glaube sogar 4.1 tut) sollte die Verwendung der "-e" -Option den Prozess ziemlich beschleunigen. – MBCook

+0

--opt für optimierte –

+0

Was ist mit der Situation, wo Sie nicht mysqldump tun können, wie das Betriebssystem beschädigt ist? Ich habe gehört, dass Sie .frm, .MYI und .MYD Dateien kopieren können. –

2

Die Dateien auf der Festplatte sind zu 100% zwischen allen Editionen von MySQL kompatibel. Sie müssen nur auf den Fall der Dateinamen achten, weil es unter Unix wichtig ist, während es manchmal nur unter Windows funktioniert.

Und denken Sie daran, MySQL zu stoppen, bevor Sie eine Kopie machen. MyISAM-Dateien sind in Ordnung, um eine Kopie während des Laufens zu machen, aber InnoDB-Dateien sind nicht wirklich sicher, und Windows MySQL verwendet standardmäßig die InnoDB-Dateien.

2

Seien Sie vorsichtig mit Zeichensätzen, wenn Sie mysqldump verwenden, insbesondere unter Windows. Ich bevorzuge es, den Zeichensatz, den meine Datenbank verwendet, explizit zu setzen und die Datei --result-file = zu verwenden, anstatt den Operator> zu verwenden, damit etwas nicht verändert wird.

0

mysqldump sollte es korrekt ausgeben und den Zeichensatz von allem in der Datenbank beibehalten. Es ist ratsam, zur selben Version von mysql zu wechseln, wenn Sie keine Probleme haben wollen.

Die Datei von mysqldump ist keine Textdatei, trotz Aussehen, nicht mit notepad.exe usw. bearbeiten oder Sie werden in Schwierigkeiten geraten.

Dumps, die von Drittanbieter-GUI-Tools erstellt wurden, insbesondere phpmyadmin, sind im Allgemeinen ungenau und werden nicht unbedingt korrekt wiederhergestellt.

17

Anstatt die Datenbanken einzeln exportieren, können Sie sie alle mit einem einzigen Befehl exportieren. Dann importiere sie. z.

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

PS- Der größte Vorteil ist, dass Sie die Benutzerrechte nicht verlieren.

+0

Sehr praktisch und funktioniert für mich. Vielen Dank. – bortzmeyer

+6

Zum Wiederherstellen in einem Befehl: mysql -u Benutzername -p Pratyush

0

Mit der neuen mysql workbench (GUI-Tool) können Sie die Datenbank einfach exportieren und in die Datenbank importieren, die Sie migrieren möchten.

1

Von der MySQL-Dokumentation: http://dev.mysql.com/doc/refman/5.0/en/copying-databases.html

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

Übertragen Sie die Datei die Datenbankinhalte auf dem Zielcomputer, und führen Sie diese Befehle dort enthalten:

shell> mysqladmin create db_name 
shell> gunzip < db_name.gz | mysql db_name 
Verwandte Themen