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 2/3 > >>
Roswitha Uhde, am 05.09.2014 um 22:08 Uhr
Hallo Schnatterente,
diesen Artikel habe ich empfohlen bekommen und er hat mir große Hoffnung gemacht, dass ich mein Problem in den Griff bekomme. Ich habe mir zwei Blogs zerschossen und kriege einfach die Datenbanken nicht hochgeladen. Sie sind 10mal so groß, als zugelassen.
Gibt es den MySQL Dump Splitter nicht mehr? Die Seite kann nicht geladen werden.
Hoffentlich kannst du mir helfen.
Herzliche Grüße aus Berlin
Roswitha
Roswitha Uhde, am 06.09.2014 um 15:26 Uhr
Danke für die schnelle Antwort und den Link.
Schönes Wochenende wünscht dir
Roswitha
picshots, am 01.10.2014 um 12:54 Uhr
Danke für diesen Beitrag. So hat´s nun funktioniert und ich konnte endlich die Datenbank importieren. Hatte schon in die Tischkante gebissen...
its ME, am 05.12.2014 um 00:02 Uhr
the better one :

https://faq.hosteurope.de/index.php?cpid=11019
Christoph, am 06.02.2015 um 17:00 Uhr
Netter Post, aber ich finde, man sollte nicht an den Konfigurationsdateien rumschrauben, wenn man genauso gut über den mysql - Befehlen auf dem Server den Dump importieren könnte.
Es gibt Gründe, warum diese Werte in den Konfigurationsdateien eingetragen sind und jeder, der die Konfigurationsdateien bearbeiten kann, kann auch die mysql - Befehle ausführen.
Karsten, am 06.02.2015 um 17:52 Uhr
Christoph, da hast du natürlich ein Stück weit recht. Man sollte sich generell nur an Konfigurationsdateien vergreifen, wenn man auch weiß, was man tut. Aber ansonsten sind das da oben aus meiner Sicht schon die korrekten Lösungsansätze für das Problem und gerade wer selbst einen Server betreibt, wird sich wohl über diese Hilfe freuen.
Canso, am 17.03.2015 um 21:23 Uhr
Danke für diesen klasse Tipp! Nach einem Provider Wechsel und genau diesem Problem war ich inzwischen ziemlich ratlos ... mit dem Dump Splitter aber super simpel! Klasse!