Datenbank-Server

ID #1137 MySQL: Daten-Import und -Export

Problem:

Häufig zieht man von einem Server oder Webspace zu einem anderen um. Dazu will man natürlich seine Datenbank mitnehmen. Doch die ist manchmal so umfangreich, daß phpMyAdmin diese nicht mehr verarbeiten kann. Was also tun?

Lösung:

Ich stelle hier jeweils 3 Möglichkeiten vor die untereinander kompatibel sind. Sprich: man ist nicht beim eine Export an die selbe Methode beim Import gebunden.

  1. per SSH
  2. mit phpMyAdmin
  3. mit eigenem PHP-Script
Alle Methoden gehen davon aus, daß Du einen gültigen User (USER) mit Passwort (PASSWD) und eine Datenbank (DB) hast

Export:

1.) per SSH
Dazu nutzen wir mysqldump:

mysqldump -uUSER -pPASSWD --allow-keywords --opt DB > DB.sql
#Verfeinerung: direkt mit gzip packen:
mysqldump -uUSER -pPASSWD --allow-keywords --opt DB | gzip > DB.sql.gz

2.) mit phpMyAdmin
Die Datenbank in phpMyAdmin aufrufen und auf der Übersichtsseite oben auf 'Export' klicken.
Alle Tabellen markieren, 'DropTables', 'Complete inserts' und 'save as file' aktivieren. Evtl. auch 'Compression' auf 'gzip' setzen.
Achtung! Sollte die Herkunftsversion von MySQL größer gleich 4.1 sein, aber die Zielversion kleiner als 4.1 muß unbedingt 'SQL export compatibility: MySQL40' angehakt werden.
'Start' klicken und warten bis der Download sich öffnet.
(Bitte die Anmerkung beachten.)

3.) mit eigenem PHP-Script
Folgendes PHP-Script als z.B. mysqldump.php auf dem Server speichern und per Webbrowser aufrufen.

<?PHP
	$User         = 'USER';   // DB-User.
	$Password     = 'PASSWD'; // DB-Password
	$DatabaseName = 'DB';     // DB-Name
	$File         = '/home/www/web1/html/DB.sql'; // the complete path
	
	echo 'starting...<br/>';
	$Results = shell_exec( "mysqldump --allow-keywords --opt -u$User -p$Password $DatabaseName > $File");
	echo 'finished<br/>';
?>
(Bitte die Anmerkung beachten.)

Import:

1.) per SSH
Die exportierte Datei liegt nun auf dem neuen Server/Webspace.
Dazu nutzen wir mysql:

mysql -uUSER -pPASSWD DB < DB.sql
#Verfeinerung: direkt mit gzip entpacken:
gzip -dc DB.sql.gz | mysql -uUSER -pPASSWD DB

2.) mit phpMyAdmin
Die exportierte Datei liegt auf dem heimischen Rechner.
Die neue Datenbank in phpMyAdmin aufrufen und auf der Übersichtsseite oben auf 'SQL' klicken.
Bei 'use Textfile' auf 'Browse' klicken und die Datei auf dem Rechner auswählen. Nach dem Klick auf den Button 'start' wird die Datei hochgeladen und importiert.
(Bitte die Anmerkung beachten.)

3.) mit eigenem PHP-Script
Die exportierte Datei liegt nun auf dem neuen Server/Webspace.
Folgendes PHP-Script als z.B. mysqldump.php auf dem Server speichern und per Webbrowser aufrufen.

<?PHP
	$User         = 'USER';   // DB-User.
	$Password     = 'PASSWD'; // DB-Password
	$DatabaseName = 'DB';     // DB-Name
	$File         = '/home/www/web1/html/DB.sql'; // the complete path

	echo 'starting...<br/>';
    $Results = shell_exec( "mysql -u$User -p$Password $DatabaseName < $File" );
    echo "import-results:<br/>n";
    echo $Results;
?>
(Bitte die Anmerkung beachten.)

Anmerkung:

Bei PHP-Scripten kann es zu Probleme wegen Speichermangel oder Ausführzeiten kommen wenn die Datenbank zu groß ist.
Lösungen:

  • Eine andere der 3 Möglichkeiten versuchen.
    (Per SSH gibt es diese Probleme nicht.)
  • Nur Teile der Datenbank exportieren/importieren.
    (Kostet mehr Handarbeit.)
  • In der php.ini die Voreinstellungen ändern.

Zusätzlich kann es bei den jeweils dritten Lösungen sein, daß die Ausführungsrechte für mysql und mysqldump nicht gegeben sind. Entweder wegen open_basedir, safe_mode oder fehlende Rechte des Webusers.
Hier ist dann jeweils eine der anderen Lösungen zu wählen.

 

sozial Bookmarking
Bookmarken bei YIGG Bookmarken bei Mister-Wong Bookmarken bei Icio Bookmarken bei del.icio.us Bookmarken bei Technorati Bookmarken bei Furl Bookmarken bei Spurl Bookmarken bei Yahoo Bookmarken bei Google

huschi, zuletzt 2006-02-21 21:27     Artikel ausdrucken Artikel weiterempfehlen Als PDF-Datei anzeigen

Dieser Inhalt ist unter der Creative-Commons Lizenz lizensiert.

Probleme bitte im Server-Support-Forum diskutieren.

überflüssig 1 2 3 4 5 wertvoll  
Durchschnittliche Bewertung:   4.69 von 5 (13 Bewertungen)

Artikel kommentieren