SQL Splitter: SQL-Datei aufteilen und komprimieren
Deine SQL-Datei ist zu groß für den Import in phpMyAdmin? Der SQL Splitter packt sie als .sql.gz oder teilt sie zwischen ganzen Statements in Teile unter 1,9 MB, z. B. community-db.sql mit 98 KB in 20 KB als .sql.gz. Kostenlos, ohne Anmeldung und ohne Upload: Deine Datei bleibt im Browser.
Gebaut von Justin Schuessler
Auf einem eigenen vServer importierst du große Dumps per Konsole, ohne das Upload-Limit von phpMyAdmin.
Deine Datei bleibt in deinem Browser: Sie wird weder hochgeladen noch gespeichert.
Beispiel-Ergebnis
So teilt der SQL Splitter einen Dump auf
Erst prüft das Tool, ob die gepackte Datei schon unter dein Limit passt. Sonst schneidet es zwischen ganzen Statements und gibt jedem Teil den Kopf des Dumps mit. Das Beispiel ist ein kleiner mysqldump mit Zielgröße 40 KB, damit mehrere Teile entstehen; deine Werte hängen von deiner Datei ab.
Beispiel · Eingabe: community-db.sql, 98 KB, 56 Statements, 2 Tabellen, Trigger, Prozedur und View
- SQL-Datei
- 98 KB
- Als .sql.gz
- 20 KB
- 4,9-mal kleiner
- Teile unter 40 KB
- 3
- Import-Probleme gefunden
- 9
- DEFINER, CREATE DATABASE/USE, MySQL-8-Collation
community-db-teil-001.sql 28 KB 17 Statements players, scorescommunity-db-teil-002.sql 40 KB 3 Statements scorescommunity-db-teil-003.sql 32 KB 18 Statements scoresWarum dieses Tool
Ein SQL Splitter, dessen Teile sich wirklich importieren lassen
Viele Splitter schneiden nach Zeilen oder Megabytes und zerreißen dabei Trigger, Prozeduren oder Datensätze. Dieser liest den Dump wie der mysql-Client.
Erst komprimieren, dann aufteilen
SQL-Dumps bestehen aus viel wiederholtem Text und werden als .sql.gz oft um ein Vielfaches kleiner, phpMyAdmin importiert sie direkt. Das Tool rechnet die gepackte Größe zuerst aus. Passt sie unter dein Limit, brauchst du keine Teile.
Schnitt nur zwischen ganzen Statements
Der Parser kennt Strings mit Escapes, Kommentare mit --, # und /* */, die /*!40101 … */-Zeilen von mysqldump und DELIMITER-Blöcke. Ein Semikolon in einem Text oder in einem DELIMITER-Block trennt nicht.
Große INSERTs werden zeilenweise geteilt
Ist ein INSERT mit vielen Zeilen größer als ein Teil, wird es in mehrere INSERTs mit demselben Kopf zerlegt, immer zwischen zwei Datensätzen. Ein einzelner Datensatz, der allein zu groß ist, wird mit Nummer und Tabelle gemeldet.
Jeder Teil einzeln importierbar
Zeichensatz, SQL-Modus, Zeitzone und das Abschalten der Fremdschlüssel aus dem Kopf des Dumps stehen in jedem Teil, am Ende wird alles zurückgesetzt. Auch ein aktives USE und DELIMITER werden mitgenommen.
Import-Fixes per Häkchen
DEFINER, CREATE DATABASE und USE, MySQL-8-Collations und Replikations-Zeilen: Das Tool zeigt, wie oft sie vorkommen, und ändert nur, was du anhakst. Die Fixes gehen auch ohne Aufteilen.
Läuft im Browser, auch mit Hunderten MB
Dumps enthalten oft Kundendaten. Die Datei wird in einem Web Worker gestreamt und verlässt deinen Rechner nicht; Fortschritt und Abbrechen inklusive, ohne dass der Tab hängt.
So funktioniert es
So importierst du eine große SQL-Datei in drei Schritten
Vom zu großen Dump bis zur fertigen Datenbank, ohne Konto und ohne Upload.
Schritt 1
SQL-Datei laden
Ziehe die .sql, .sql.gz oder .zip in das Feld. Das Tool liest sie im Browser, zählt Statements und Tabellen und sucht nach typischen Import-Problemen.
Schritt 2
Komprimieren oder aufteilen
Wähle das Upload-Limit: phpMyAdmin 2 MB, 8 MB oder einen eigenen Wert. Passt die Datei als .sql.gz darunter, lädst du diese eine Datei herunter. Sonst teilt das Tool sie in Teile unter der Zielgröße auf (bei 2 MB höchstens 1,9 MB), einzeln oder als ZIP, auf Wunsch mit Import-Fixes.
Schritt 3
In phpMyAdmin importieren
Datenbank links auswählen, Reiter Importieren, Datei wählen, OK. Bei mehreren Teilen nacheinander, Teil 1 zuerst. Oder einen Teil kopieren und im Reiter SQL einfügen.
Fehlermeldungen
Warum der Import in phpMyAdmin scheitert und was hilft
Die häufigsten Meldungen beim Import einer SQL-Datei und der passende Schritt im Tool.
Import hängt bei „Bitte Geduld, die Datei wird verarbeitet.“
Ursache: Die Datei ist größer als das Upload-Limit von phpMyAdmin (bei uns 2 MB, angezeigt als „Maximale Größe: 2.048 KiB“). phpMyAdmin 5.2 zeigt dann oft keinen Fehler, die Anzeige dreht einfach weiter. Je nach Server-Einstellung kommt stattdessen „Es wurden keinen Daten zum Importieren empfangen“.
Lösung: Als .sql.gz hochladen. Ist sie dann noch zu groß, aufteilen und die Teile nacheinander importieren.
„Es scheint, dass die Verbindung zum Server verloren gegangen ist“ im Reiter SQL
Ursache: Der eingefügte Text ist zu groß. Der Browser schickt ihn kodiert ab, Leer- und Sonderzeichen zählen dabei dreifach, Zeilenumbrüche sechsfach: So sind 1,9 MB Text schnell über 2 MB.
Lösung: Im Tool „In SQL-Konsole einfügen“ wählen, dann passen die Teile auch kodiert unter das Limit.
#1227 Access denied; you need (at least one of) the SUPER privilege(s)
Ursache: Views, Trigger oder Prozeduren tragen DEFINER mit einem Benutzer des alten Servers. MariaDB nennt das Recht SET USER, bei SQL_LOG_BIN aus MySQL-Dumps BINLOG ADMIN.
Lösung: Fix „DEFINER entfernen“ und bei MySQL-Dumps „Replikations-Zeilen entfernen“ anhaken.
#1273 Unknown collation: 'utf8mb4_0900_ai_ci'
Ursache: Der Dump kommt von MySQL 8. MariaDB kennt diese Collation nicht, auch Version 11.6 nicht.
Lösung: Fix „MySQL-8-Collations ersetzen“ anhaken.
#1193 Unknown system variable 'GTID_PURGED'
Ursache: Der Dump stammt von einem MySQL-Server mit GTID-Replikation. Diese Zeile gibt es nur bei MySQL.
Lösung: Fix „Replikations-Zeilen entfernen“ anhaken.
#1044 Access denied for user … to database …
Ursache: Der Dump legt mit CREATE DATABASE eine eigene Datenbank an oder wechselt mit USE in eine, auf die dein Benutzer keinen Zugriff hat.
Lösung: Fix „CREATE DATABASE und USE entfernen“ anhaken und vorher links die richtige Datenbank wählen.
#1452 Cannot add or update a child row: a foreign key constraint fails
Ursache: Ein Teil fügt Daten ein, deren verknüpfte Zeilen erst in einem späteren Teil kommen.
Lösung: Das Tool schaltet die Fremdschlüssel-Prüfung in jedem Teil aus. Importiere die Teile trotzdem in ihrer Reihenfolge.
#1050 Table already exists oder #1062 Duplicate entry
Ursache: Ein Teil wurde zweimal importiert, oft nach einem Abbruch.
Lösung: Nicht von vorn beginnen: Ab dem Teil weitermachen, der abgebrochen ist. Bei Zweifeln die Datenbank leeren und neu starten.
Der richtige Weg
Komprimieren, aufteilen oder ein anderes Werkzeug?
Aufteilen ist nicht immer die beste Lösung. So entscheidest du in einer Minute.
Weg 1
Komprimieren (.sql.gz)
Der schnellste Weg, wenn die gepackte Datei unter das Limit passt: eine Datei, ein Import, nichts geändert.
Weg 2
Aufteilen mit diesem SQL Splitter
Wenn auch die .sql.gz zu groß ist und du nur phpMyAdmin hast. Mehrere Uploads, dafür ohne zusätzliche Software.
Weg 3
HeidiSQL oder ein anderer Datenbank-Client
Für sehr große Dumps oder einzelne Datensätze über dem Limit. Der Client verbindet sich direkt mit der Datenbank, ein Upload-Limit gibt es dort nicht. Unter Windows: Datei, SQL-Datei ausführen.
Weg 4
mysql-Client auf der Konsole
Wenn du einen vServer oder SSH-Zugang hast: mysql -u benutzer -p datenbank < dump.sql importiert ohne das Upload-Limit von phpMyAdmin, eine .gz über zcat.
Mehr entdecken
Weitere Tools
Text vergleichen online (Diff Checker)
Texte vergleichen online: Zwei Texte, Configs oder Code-Stände vergleichen, Unterschiede zeilen- und wortgenau sehen und als Unified Diff kopieren. Läuft komplett im Browser.
Gebaut von Dimitri Heissler
Hash Generator (MD5, SHA-1, SHA-256, SHA-512)
NeuMD5-, SHA-1-, SHA-256- und SHA-512-Hashes aus Text oder Datei erzeugen und Prüfsummen vergleichen. Läuft komplett im Browser.
Gebaut von Luca Stanek
Bcrypt Generator & Checker
Bcrypt-Hashes erzeugen und überprüfen - komplett im Browser, mit einstellbarem Cost Factor.
Gebaut von Rugile Rutkauskaite
JSON to CSV Converter
JSON in CSV und CSV in JSON umwandeln: verschachtelte Objekte flachen, Trennzeichen erkennen, CSV für Excel mit BOM, Tabellenvorschau für JSON- und CSV-Dateien. Läuft komplett im Browser.
Gebaut von Dimitri Heissler
.htaccess Generator & htpasswd Generator
Apache-.htaccess und .htpasswd online erstellen: 301-Weiterleitungen, HTTPS, Passwortschutz mit bcrypt, WordPress-Regeln, Fehlerseiten, Caching, GZIP und Hotlink-Schutz. Läuft komplett im Browser.
Gebaut von Dimitri Heissler
SQL Formatter online (SQL formatieren & verschönern)
SQL online formatieren, verschönern und minimieren – für MySQL, MariaDB und PostgreSQL mit Einrückung und Schreibweise der Schlüsselwörter. Läuft komplett im Browser, ohne Upload.
Gebaut von Luca Stanek
FAQ
Häufig gestellte Fragen
Kurze Antworten rund um phpMyAdmin-Importe, SQL-Dumps und diesen SQL Splitter.
Entweder eine .sql.gz, die phpMyAdmin direkt importiert, oder mehrere .sql-Dateien, die jeweils unter deinem Limit liegen, einzeln und als ZIP, auf Wunsch auch als .sql.gz und als Text zum Kopieren. Aus community-db.sql mit 98 KB werden als .sql.gz 20 KB, aufgeteilt mit 40 KB Zielgröße 3 Teile, jeder mit dem Kopf des Dumps, in der Reihenfolge, in der du sie importierst. Dazu zeigt das Tool je Teil Größe, Statements und Tabellen.
phpMyAdmin nimmt Dateien über PHP entgegen, und PHP begrenzt die Größe eines Uploads (upload_max_filesize und post_max_size). Auf unseren Datenbank-Servern sind es 2 MB, phpMyAdmin zeigt das unter Importieren als „Maximale Größe: 2.048 KiB“. Auch Text, den du in den Reiter SQL einfügst, läuft über diese Grenze. Dafür gibt es im Tool den Modus „In SQL-Konsole einfügen“: Er rechnet mit der Größe, die der Browser beim Abschicken tatsächlich sendet, und macht die Teile entsprechend kleiner.
Oft ja. Das Limit gilt für die hochgeladene Datei, also die gepackte, und SQL-Dumps bestehen aus viel wiederholtem Text. phpMyAdmin entpackt eine .sql.gz beim Import selbst. Der SQL Splitter rechnet die Größe der .sql.gz zuerst aus, zeigt dir, wievielmal kleiner sie ist, und empfiehlt das Aufteilen nur, wenn die gepackte Datei immer noch über deinem Limit liegt.
Lade die .sql, .sql.gz oder .zip in den SQL Splitter, etwa einen Export aus mysqldump, mariadb-dump, phpMyAdmin, HeidiSQL oder Adminer. Geschnitten wird nur zwischen vollständigen Statements: Strings mit Escapes, Kommentare, die /*!…*/-Zeilen und DELIMITER-Blöcke für Trigger und Prozeduren erkennt das Tool, ein Semikolon darin trennt nicht. Ein INSERT mit vielen Zeilen, das größer als ein Teil ist, wird zwischen zwei Datensätzen in mehrere INSERTs mit demselben Kopf zerlegt. Ist ein einzelner Datensatz allein größer als die Zielgröße, meist ein Bild in einer BLOB-Spalte, nennt das Tool Statement-Nummer, Zeile und Tabelle. Diesen Teil importierst du mit HeidiSQL oder dem mysql-Client, oder du versuchst ihn als .sql.gz hochzuladen.
In der Reihenfolge der Nummern, Teil 1 zuerst, und alle in dieselbe Datenbank. Teil 1 enthält meist die CREATE-TABLE-Anweisungen, spätere Teile füllen die Tabellen. Hat der Dump Fremdschlüssel, schaltet jeder Teil ihre Prüfung am Anfang aus und am Ende wieder zurück. Bricht ein Teil ab, behebe den Fehler und mach mit genau diesem Teil weiter. Frühere Teile importierst du nicht erneut, sonst kommt „Table already exists“ oder „Duplicate entry“. Weißt du nicht mehr, was schon importiert ist, leere die Datenbank (in phpMyAdmin im Reiter Struktur alle Tabellen markieren und löschen) und beginne wieder mit Teil 1.
Views, Trigger, Prozeduren und Events speichern, unter welchem Benutzer sie laufen (DEFINER). Steht dort ein Benutzer des alten Servers, etwa root, darf dein Datenbank-Benutzer sie nicht anlegen. Hake im Tool „DEFINER entfernen“ an, dann legt der Server sie mit deinem Benutzer an. MariaDB nennt das fehlende Recht SET USER. Kommt der Dump von MySQL, scheitern auch die Zeilen SQL_LOG_BIN (Recht BINLOG ADMIN) und GTID_PURGED, dafür gibt es „Replikations-Zeilen entfernen“.
utf8mb4_0900_ai_ci ist die Standard-Collation von MySQL 8. MariaDB kennt sie nicht, auch Version 11.6 nicht, und bricht beim CREATE TABLE mit #1273 ab. Der Fix „MySQL-8-Collations ersetzen“ tauscht sie und die anderen 0900-Varianten gegen utf8mb4_unicode_ci, die groß/klein-sensitiven gegen utf8mb4_bin. INSERT-Statements und damit deine Daten lässt er unverändert.
Nein. Ein Dump enthält oft Kunden- und Zugangsdaten, deshalb liest das Tool die Datei nur in deinem Browser, in einem Web Worker. Es gibt keinen Upload, keine Speicherung und kein Konto. Im Netzwerk-Tab der Entwicklertools siehst du, dass beim Komprimieren und Aufteilen keine Anfrage mit deiner Datei entsteht.
Noch weitere Fragen?
Support kontaktierenDeine Datenbank ohne Upload-Limit auf dem eigenen vServer
Mit einem ZAP-Hosting vServer hast du Root-Zugriff, importierst große Dumps per Konsole und betreibst MySQL, MariaDB oder PostgreSQL so, wie du willst.
Kein Setup. Kein Risiko. In Sekunden online.
Auf der Suche nach weiteren Tools? Alle Entwickler-Tools ansehen
