Gefällt dir dieser Artikel?

phpMyAdmin: große SQL Dateien importieren

erschienen in der Kategorie Webdesign, am 29.05.2012
Schnatterente
Die Datenbank einer Webseite zu sichern, ist Dank der browserbasierten Datenbankverwaltungssoftware phpMyAdmin sehr leicht zu bewältigen. Die exportierten Dateien wieder zu importieren kann hingegen etwas kniffliger werden - zumindest dann, wenn es sich um recht große Datenbanken handelt und serverseitige Beschränkungen für Ausführungszeit und Speicherverbrauch, dem Import auf halber Strecke einen Strich durch die Rechnung machen.

Die Ursachen für dieses Problem sind in den Einstellungen des Webservers und des MySQL-Datenbankservers zu finden. Wer root-Zugriff auf den Webseitenserver hat, kann die entsprechenden Werte in den jeweiligen Konfigurationsdateien ändern:
  • php.ini: max_execution_time - legt fest, wie lang eine Anfrage maximal bearbeitet werden darf (in Sekunden)
  • php.ini: memory_limit - legt fest, wie viel Speicher einem Skript zur Verfügung gestellt wird
  • php.ini: post_max_size - legt fest, bis zu welcher Größe HTTP POST Anfragen akzeptiert werden
  • php.ini: upload_max_filesize - gibt an, bis zu welcher Dateigröße Uploads akzeptiert werden
  • my.cnf: max_allowed_packet - gibt an, bis zu welcher Größe MySQL Anfragen bearbeitet werden

Nach Anpassung der Werte und Neustart der entsprechenden Server, sollten große SQL-Imports sowohl via phpMyAdmin, als auch via Konsole möglich sein.

Die meisten Webseitenbetreiber haben aber keinen root-Zugriff auf den Webserver, weil sie nur den benötigten Webspace und eine Datenbank angemietet haben. In diesem Fall können die obigen Einstellungen meist nur in einem sehr eingeschränkten Rahmen, über ein Webinterface wie Plesk oder Confixx, bearbeitet werden und ein Zugriff auf die Datenbank ist auch nur via phpMyAdmin möglich.

Doch auch in diesem Fall gibt es eine Möglichkeit, große SQL Dateien zu importieren. Der Trick besteht darin, sie einfach in viele kleinere Anfragen aufzusplitten. Das Programm MySQL Dump Splitter übernimmt diese Aufgabe voll automatisch. Das Tool kann hier kostenlos heruntergeladen werden (als .exe Datei, ohne Installation - die Anwendung läuft mit Wine super unter Linux). Die Bedienung ist denkbar einfach. Man füttert den Dump Splitter mit einer großen SQL-Datei und gibt an, wie groß die Splitdateien maximal werden dürfen. Die Software erstellt dann viele kleinere SQL Dateien sowie eine Readme-Datei, in der noch einmal darauf hingewiesen wird, dass es wichtig ist, die entstandenen SQL-Files in der richtigen Reihenfolge zu importieren.

Somit kann man einen großen SQL-Import auf viele kleinere herunterbrechen, die (bei richtig gewählter Größe) von phpMyAdmin akzeptiert werden.

Natürlich kann dieses Vorgehen auch etwas ausarten. Man stelle sich vor, man hat eine 5 Gigabyte große Datenbank und der Upload des Providers erlaubt nur 8 Megabyte große Dateien. Der SQL Dump Splitter würde 641 Dateien erzeugen, die man alle per Hand hochladen müsste.

In so einem Fall wären folgende Überlegungen ratsam
  • etwas größere SQL-Splits erzeugen und sie möglichst gut komprimieren (insofern der Provider wenigstens den Upload komprimierter SQL-Dateien zulässt)
  • große, nicht mehr benötigte Teile der Datenbank weglassen (z.B. Zugriffs-Statistiken der Webseite, die viele Tausend Zeilen Browser- und IP-Informationen enthalten)
  • sich an den Provider wenden und diesen um Hilfe bitten (eventuell, wenn der Provider jegliche Hilfestellung verweigert, mit Kündigung drohen)
  • sich einen anderen Provider suchen
  • bei vorhandenen Linux-Kenntnissen: auf einen Virtual Host umsteigen und die Vorteile des root-Zugriffs genießen



Update 06.09.2014: Download-Link aktualisiert. (Die Original-Projektseite scheint es nicht mehr zu geben.)

Geschnatter

20 Kommentare, selbst mitschnattern << < Seite 1/3 > >>
Muggle_elgguM, am 28.03.2013 um 10:29 Uhr
Danke, hat mir viel Arbeit erspart! Super Beitrag unter den vielen Nieten die ich im Internet gefunden habe.
Bernd, am 13.05.2013 um 14:22 Uhr
Der "Glückwunsch" ist nett gemeint aber ich habe keinen "Adblocker!" - auf diese "billige" Weise läßt sich das nicht prüfen. Ich muß das mal loswerden, da ich das immer öfter sehe.

Um diesen Kommentar zu schreiben, habe ich übrigens mal kurz Javascript aktiviert.

(Die Qualität des obigen Beitrages kann ich jetzt nicht beuteilen, da es nicht auf meine Fragestellung paßt. )


Schöne Grüße
Bernd
Antwort: Hallo Bernd, das mit dem Adblocker ist mehr als Scherz gemeint, man sollte es nicht zu ernst nehmen. Dass du es "immer öfter siehst" erstaunt mich aber, da ich es mir damals selbst ausgedacht hatte und bis dato noch auf keiner anderen Seite gesehen habe.

Geprüft wird da gar nichts, es ist lediglich ein Hintergrundbild, dass sonst von der Werbung verdeckt wird. In soweit hast du recht, auf so "billige" Art und Weise lässt sich wirklich nichts überprüfen (war aber auch nie mein Ziel). Bei vielen Leuten stimmt die Aussage aber und so habe ich dafür schon viel positives Feedback von Lesern bekommen, die es witzig finden.

Nichts für Ungut und entschuldige bitte, dass ich JavaScript für die Kommentarfunktion benutzt habe.
Ingo, am 04.07.2013 um 10:52 Uhr
Es ist totaler quatsch, dass immernoch Leute mit ausgeschaltetem Javascript surfen, sind bestimmt die gleichen Leute die in den 90ern gesagt haben, dass PC-Spiele den PC kaputt machen.
In der Firefox 23 Beta ist sogar die Option zum ausschalten des JS nicht mehr in den Einstellungen zu finden, da Mozilla denkt dass das "Internet ohne JavaScript kaputt aussieht"
Also: Lass die Seite inkl. das JS so wie sie ist ;)
Gabrijel Cosic, am 27.10.2013 um 01:27 Uhr
Ich besitze einen Rootserver und habe mir seit eine Woche den Kopf zersetzt wie Ich einen Dump von 337 MB einspielen kann.Du hast es auf den Punkt gebracht und es scheint zu funktionieren. Es ist gerade dabei Hochzuladen (nachdem Ich in php.ini: upload_max_filesize auf 600 gesetzt habe) und Ich denke das es diesmal funktionieren wird. Ich habe über den PuTTY versucht SSh und ging nicht, ferner habe Ich My SGL Dumper installiert und hierbei war die Meldung "Can`t not open the file und und...
Die meisten Hilfestellungen waren von Profi zu Profi geschrieben also dein Beitrag ist APSOLUT KLASSE. Danke dir für die Mühe.
Gabrijel
urgs, am 29.01.2014 um 02:14 Uhr
Tolles Tool. Vielen Danke dafür.

Gruß
McG, am 02.07.2014 um 11:33 Uhr
Tausend Dank, das Tool und der Beitrag haben mir den Hintern gerettet.
Manuel, am 29.07.2014 um 14:21 Uhr
@McG: Gut für deinen Hintern! Cooler Blogtitel.