Kategorien
Weblog

Zu große SQL-Datenbanken in XAMPP importieren

Mit phpMyAdmin ist das Exportieren und Importieren von Datenbanken relativ einfach, es sei denn, die Datenbank ist z.B. 1 GB groß.

Die Standard Größenbeschränkungen bei Datenbanken sind relativ niedrig angesetzt. Die Grenze ist schneller erreicht als gedacht und schon bockt phpMyAdmin. Gemeiner Weise spuckt es nicht einmal zwangsweise eine nachvollziehbare Fehlermeldung aus, die darauf schließen lässt, dass die zu importierende Datenbank zu groß ist.

Video: Geeky Cebuana
  1. Den “Konfiguration”-Button des XAMPP-Kotrollpanels des SQL-Servers klicken und my.ini auswählen
  2. In der Datei nach myisam_sort_buffer_size = 8M suchen und den Wert von 8 MB soweit erhöhen, dass er größer als die zu importierende Datenbank ist. Hier kann man z.B. auch G für Gigabyte verwenden. Danach speichern.
  3. Im Kontrollpanel den SQL-Server stoppen und neustarten.
  4. In phpMyAdmin jetzt die Datenbank importieren (und nicht schockiert sein, weil erneut die Fehlermeldung ausgespielt wird).
  5. Die Shell öffnen (Bei Windows 10 kann man z.B. in das Textfeld von Cortana dazu einfach cmd eingeben.)
  6. Die Datenbanken bei XAMPP befinden sich in der Regel im Verzeichnis C:\xampp\mysql\bin, in der Shell ruft man das Verzeichnis mit folgendem Befehl auf: cd C:\xampp\mysql\bin
  7. Der Einfachheit halber sollte man einfach auch die zu importierende Datenbank dort ablegen.
  8. Ab hier weiche ich ein wenig vom obigen Video ab!
  9. Folgenden Befehl eingeben: mysql -u root -p db_name < db_name_2.sql Nach dem -u folgt der Benutzername, bei XAMPP lautet dieser i. d. R. schlicht root, nach -p folgt der Name der Datenbank in die die Daten importiert werden sollen, das < ist der Parameter für Import (> wäre dementsprechend für den Export) der Datenbank, die in diesem Beispiel db_name_2.sql heißt (Die Dateiendung darf hier nicht fehlen!)
  10. Nachdem man auf Enter gedrückt hat, wird das Passwort der Datenbank abgefragt, in die die Daten importiert werden sollen. Bei XAMPP ist das ein wenig fies, weil es nämlich standardmäßig kein Passwort gibt. Also einfach auf noch einmal auf Enter drücken.
  11. Der Import läuft jetzt und man kann ihn quasi live in phpMyAdmin mit verfolgen.

So einfach geht das … natürlich nicht! Der Import läuft jetzt zwar, aber wenn die Datenbank besonders groß ist, muss man damit rechnen, dass es auch einzelne Bestandteile sind. Ist das der Fall, bricht der Import ab und zeigt in der Shell die Fehlermeldung an:

Bei ERROR 1118 ist etwa ein Element in der Datenbank länger als die erlaubte Zeilenlänge, in der my.ini kann hierfür der Wert für innodb_page_size angepasst werden. Nicht unwahrscheinlich ist auch ERROR 2006, ein Hinweis darauf, das ein einzelnes Element an sich zu groß war, um verarbeitet zu werden. Hier kann man die maximale Größe eines Einzelpakets unter max_allowed_packet anpassen und die Zeitspanne des Imports unter wait_timeout verlängern – letzterer wird in Sekunden angeben.

Von Thomas Matterne

Thomas Matterne ist ausgebildeter Journalist mit einem Diplom in Wirtschaftsinformatik. Er arbeitete als Leiter der Online Redaktion von TV touring und als Chefredakteur von DenkZeit. Aktuell schreibt er neben dieser Seite in diversen anderen Online-Veröffentlichungen, wie z.B. das Kaffee Journal. Auf dieser Seite finden sich vor allem Themen aus den Bereichen Content- und Online-Marketing, sowie dem Feld IT allgemein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.