Export-/Import mit phpMyAdmin(MySQL) oder mysql-Kommandozeilenbefehl

Achtung: Die nachfolgenden Informationen sind veraltet und werden nicht mehr gepflegt!

Für aktuelle Informationen zum Thema "Datenbanken im LRZ-Webhosting" lesen Sie bitte unseren Artikel auf der neuen Doku-Plattform des LRZ.

Datenexport mit phpMyAdmin

phpMyAdmin ist eine komfortable GUI-Oberfläche - ablauffähig in jedem grafischen Browser - für das MySQL Datenbank-Managementsystem. Mit phpMyAdmin können Sie einen Datenbank-Dump ihrer kompletten MySQL-Datenbank vornehmen.

Dieser Dump kann als Backup oder zum Einspielen Ihrer Datenbank für eine Neuinstallation nützliche Dienste leisten.

Zum Import und Export Ihrer Daten bzw. Datenbank stellt das Programm phpMyAdmin Funktionen bereit.

Zugangswege: Das Programm ist unter

erreichbar.

phpmyadmin logon-screen

Die Anmeldung erfolgt mit Benutzername und Kennwort.

phpmyadmin export1

Die Exportfunktion ist über den Startbildschirm erreichbar.

PhpMyAdmin bietet eine Exportfunktion, die entweder auf Datenbank- oder auf Tabellenebene anwendbar ist. Es wird eine Datei mit der Endung .sql erstellt. Die Dump-Datei kann für einen Import der Daten per phpMyAdmin oder per mysql-Aufruf auf der Kommandozeile Verwendung finden (z.B. mysql -u <user> -h mysql-web2.sql.lrz.de -p < dumpdatei.sql).

Als Optionen des MySQL-Dumps sollten eingestellt werden:

- Auswahl der Datenbanken zur Sicherung
- Struktur und Daten
- DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT-Befehl hinzufügen

Die DROP-Befehle erleichtern ein MySQL-Import der Daten, da zuvor nicht alle Tabellen gelöscht werden müssen.  

Auf keinen Fall darf die Option

-DROP DATABASE-Befehl hinzufügen

ausgewählt werden, da Sie keine Berechtigung zum Anlegen bzw. Löschen von Datenbanken besitzen.

Export mit mysqldump

Für den Export von Datenbankinhalten der MySQL-Server kann das Programm mysqldump verwendet werden. Für Webserver-Betreiber stellt das Leibniz-Rechenzentrum Linuxentwicklungsrechner zur Verfügung.

Mysqldump schreibt sowohl die Datendefinitionen als auch die Tabelleninhalte in eine Datei. Das Programm ist Bestandteil der MySQL-Distribution.

mysqldump -u<Benutzername> -p<Passwort> [-h<Hostname>] --opt <Schema> > <Verzeichnis>/<Dateiname> .sql

Die Datei kann ohne weitere Bearbeitung nach phpMyAdmin übernommen werden.

Ein Beispiel mit sinnvollen Optionen und real belegten Variablen zeigt der folgende Aufruf an der Linux-Zugangsmaschine "webdev-tum":

mysqldump --user=di34laz --host=mysql-web2.sql.lrz.de --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "di34lazsampdb" -p >Dump-sampdb-20150720.sql

Export aus Datenbanksystemen anderer Hersteller

SQL ist nicht gleich SQL. Der SQL-Standard untergliedert sich in SQL1 (ISO/IEC 9075:1987 mit Erweiterung ISO/IEC 9075:1989), SQL92 (ISO/IEC 9075:1992), SQL99 (ISO/IEC 9075:1999) und SQL2003 (ISO/IEC JTC1/SC32/WG3). Einerseits wurden die Standards in die Datenbankserver noch nicht vollständig übernommen und zudem haben die Hersteller an eigenen Erweiterungen gearbeitet. Es ist also nach dem Import in MySQL zu prüfen, ob die gewünschte Funktionalität noch gegeben ist.

Relationen, einschließlich der Regeln zur Sicherstellung der referentiellen Integrität, gehen beim Export nach MySQL verloren.

Export mit Microsoft Access

Liegen ihre bisherigen Datenbestände im Format Microsoft Access vor, können Sie diese exportieren und per phpMyAdmin in die MySQL-Server einbringen.

Microsoft Access gestattet es nicht Tabellendefinition ohne die Verwendung von ODBC zu exportieren. Da die MySQL-Server durch eine Firewall vom Zugriff außerhalb des Webserver-Umfeldes geschützt sind, kann ein direkter Export per ODBC-Verbindung nicht realisiert werden.

Jedoch können Tabelleninhalte in einer Textdatei oder CSV-Datei gespeichert werden.

Nach dem öffnen der Datenbank können die Tabelleninhalte mit der rechten Maustaste in eine Textdatei oder CSV-Datei übernommen werden.

Diese txt- bzw. CSV-Dateien können mit phpMyAdmin in die MySQL-Datenbank eingepflegt werden.

Export mit HeidiSQL

Liegen ihre bisherigen Datenbestände in lokalen MySQL-Servern vor, können Sie diese auch per HeidiSQL exportieren und per phpMyAdmin in die MySQL-Server einbringen.

Löschen der Tabellen mit phpMyAdmin

Tabellendefinitionen und -Inhalte werden nicht überschrieben und müssen deshalb vor dem Import entfernt werden.

Zum Löschen aller Tabellen müssen diese zuerst ausgewählt werden.

Löschen der Tabelleninhalte mit phpMyAdmin

Inhalte aller Tabellen werden nach Auswahl aller Tabellen über "Leeren" entfernt.

Import von Tabellendefinitionen inklusive Tabelleninhalten

Für den Import ganzer Schemata und/oder Tabelleinhalten bietet das Leibniz Rechenzentrum phpMyAdmin an. Nach Auswahl der Funktion öffnet sich ein Fenster für die Eingabe der Datei.

Die generierten SQL-Dateien können mit phpMyAdmin importiert werden. Nach Auswahl des Schema kann die SQL-Datei importiert werden. PhpMyAdmin bietet dafür zwei Möglichkeiten. Für den Import einer Datei über phpMyAdmin existiert zusätzlich im linken Frame ein Button SQL. Dahinter verbirgt sich die Importfunktion. Es können SQL-Skripte importiert werden.

PhpMyAdmin quittiert die erfolgreiche Ausführung.

Import von Tabellendefinitionen inklusive Tabelleninhalten per mysql-Kommandozeilenbefehl

Die per HeidiSQL bzw. phpMyAdmin erzeugten Dump-Dateien im SQL-Format können per mysql-Aufruf an den Linux-Entwicklungsmaschinen per Kommandozeilenbefehl in die MySQL-Server eingebracht werden. Der Aufruf lautet:

mysql -u<Benutzername> -p<Passwort> [-h<Hostname>] --opt <> < <Verzeichnis>/<Dateiname> .sql

Ein Beispiel mit sinnvollen Optionen und real belegten Variablen zeigt der folgende Aufruf an der Linux-Zugangsmaschine "webdev-tum":

mysql  --user=di34laz --host=mysql-web2.sql.lrz.de "di34lazsampdb" -p <Dump20150720.sql

Es sollte vermieden werden, das Passwort auf der Kommandozeile mitzugeben, da dies unsicher ist und das Passwort sich im History-Verlauf und in dem Prozessverlauf wiederspiegelt.