phpMyAdmin: große SQL Dateien importieren
erschienen in der Kategorie Webdesign, am 29.05.2012

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:
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
Update 06.09.2014: Download-Link aktualisiert. (Die Original-Projektseite scheint es nicht mehr zu geben.)
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
25 Kommentare, selbst mitschnattern
Steffen / Event-Schenken.de, am 07.08.2017 um 17:54 Uhr
Hallo, vielen Dank für dieses super Tool, und dann noch kostenlos!
Hat uns viel Arbeit beim Aufsetzen und Umzug unserer neuen Seite erspart.
Danke!
Steffen / Event-Schenken.de
Hat uns viel Arbeit beim Aufsetzen und Umzug unserer neuen Seite erspart.
Danke!
Steffen / Event-Schenken.de
Michael Holger, am 22.08.2017 um 13:59 Uhr
Vielen Dank für Deine Tipps (import mysql - Größen erweitern). War mir eine echte Hilfe. Nur mit my.cnf ist nicht mehr - stattdessen my.ini
Liebe Grüße
Michael
Liebe Grüße
Michael
Dende, am 04.09.2017 um 01:18 Uhr
Tiptop..der Hammer..danke
Michael, am 22.10.2017 um 18:00 Uhr
ich fand denText auch spassig, danke für die sonntägliche Schmunzeleinlage.
Inhaltlich habe ich genau das gefunden, was ich suchte
DANKE!!!
Inhaltlich habe ich genau das gefunden, was ich suchte
DANKE!!!
Es gelten die Regelungen der Datenschutzerklärung.