Ich habe eine mysql
-Datenbank, die auf einem Windows Computer ausgeführt wird. Gibt es ein Werkzeug zum Übertragen der Datenbank auf einen anderen Computer (Ausführen von Ubuntu )?
Ansonsten schreibe ich einfach eine script
, um die gesamte Datenbank in SQL
und insert it auf dem anderen Computer aufzunehmen. Ich versuche nur etwas Zeit zu sparen :)
Danke euch allen.
Das Werkzeug, von dem Sie sprechen, existiert bereits: mysqldump
Es wird in SQL ausgegeben, das Sie dann auf einen anderen Computer kopieren und erneut laden können.
z.B:
auf Quelle:
mysqldump -u username -p databasename > dumpfile.sql
Verschieben Sie dann die Datei mit ftp/rsync/whatever auf die Zielmaschine und erstellen Sie dort eine leere Datenbank, die importiert und ausgeführt werden soll:
mysql -u username -p databasename < dumpfile.sql
Sie müssen außerdem Berechtigungen für alle Benutzer einrichten, die möglicherweise ebenfalls übertragen wurden, da sie nicht in der Datenbank enthalten sind.
Alternativ können Sie die Dateien auch aus dem mysql-Datenverzeichnis kopieren - aber mysqldump ist der einfachste/zuverlässigste Weg.
Erwähnenswert ist, dass die Tabellennamen auf einem System zwischen Groß- und Kleinschreibung unterscheiden können, wenn sie nicht auf dem Original waren. Es hängt von der Konfiguration an beiden Enden ab - insbesondere von der Fallempfindlichkeit (oder anders) des Dateisystems.
Anstatt die Datenbanken einzeln zu exportieren, können Sie sie alle mit einem einzigen Befehl exportieren. Dann importieren Sie sie. ZB.
mysqldump -u username -p --all-databases > c:\alldbs.sql
PS- Der größte Vorteil ist, dass Sie die Benutzerberechtigungen nicht verlieren.
Die Dateien auf der Festplatte sind zu 100% mit allen MySQL-Editionen kompatibel. Sie müssen nur auf den Fall der Dateinamen achten, da dies unter Unix wichtig ist, während dies unter Windows nur manchmal der Fall ist.
Denken Sie daran, MySQL zu stoppen, bevor Sie eine Kopie machen. MyISAM-Dateien können während des Betriebs in Ordnung gebracht werden, InnoDB-Dateien sind jedoch nicht wirklich sicher, und MySQL von Windows verwendet standardmäßig InnoDB-Dateien.
Seien Sie vorsichtig mit Zeichensätzen, wenn Sie mysqldump verwenden, insbesondere unter Windows. Ich ziehe es vor, den Zeichensatz, den meine Datenbank verwendet, explizit festzulegen und die Datei --result-file = zu verwenden, anstatt den Operator> zu verwenden, da sonst etwas verstümmelt wird.
Aus der MySQL-Dokumentation: http://dev.mysql.com/doc/refman/5.0/de/copying-databases.html
Shell> mysqldump --quick db_name | gzip > db_name.gz
Übertragen Sie die Datei mit dem Datenbankinhalt auf den Zielcomputer und führen Sie diese Befehle dort aus:
Shell> mysqladmin create db_name
Shell> gunzip < db_name.gz | mysql db_name
Ich verwende oft eine Variante dieses One-Liner, um eine Datenbank über das Netzwerk zu kopieren.
mysqldump --opt --compress --user=username database | mysql --user=username2 --password=p2 --Host=hostB -D database -C database
Worüber ich ursprünglich hier gelesen habe:
http://www.igvita.com/2007/10/10/hands-on-mysql-backup-migration/
Mit der neuen MySQL-Workbench (GUI-Tool) können Sie die Datenbank problemlos exportieren und in die Datenbank importieren, die Sie migrieren möchten.
mysqldump sollte es korrekt ausgeben und den Zeichensatz von allem in der Datenbank beibehalten. Es empfiehlt sich, zur gleichen Version von mysql zu wechseln, wenn Sie keine Probleme haben möchten.
Die von mysqldump erzeugte Datei ist KEINE Textdatei, obwohl sie angezeigt wird, bearbeiten Sie sie nicht mit notepad.exe usw., oder Sie werden in Schwierigkeiten geraten.
Dumps, die von gui-Tools von Drittanbietern, insbesondere von phpmyadmin, erstellt wurden, sind im Allgemeinen ungenau und werden nicht unbedingt korrekt wiederhergestellt.
Sie können eine Sicherungskopie mit einem beliebigen GUI-Tool erstellen, z. B. MySQL-Administrator ( http://dev.mysql.com/downloads/gui-tools/ unter Windows, aptitude install mysql-admin auf Ubuntu) oder phpmyadmin ( http://www.phpmyadmin.net/home_page/index.php Unter Windows, installieren Sie aptitude phpmyadmin unter Ubuntu) und stellen Sie es dann auf dem anderen Computer wieder her.