SQL Splitter: SQL-bestand opsplitsen en comprimeren
Is je SQL-bestand te groot om in phpMyAdmin te importeren? De SQL Splitter comprimeert het als .sql.gz of splitst het tussen volledige statements op in delen kleiner dan 1,9 MB, bijvoorbeeld community-db.sql met 98 KB als .sql.gz in 20 KB. Gratis, zonder registratie of upload: je bestand blijft in je browser.
Gebouwd door Justin Schuessler
Op je eigen VPS importeer je grote dumps via de console, zonder de uploadlimiet van phpMyAdmin.
Je bestand blijft in je browser: het wordt niet geüpload of opgeslagen.
Voorbeeldresultaat
Zo splitst de SQL Splitter een dump
Eerst controleert de tool of het gecomprimeerde bestand al onder je limiet valt. Zo niet, dan splitst hij tussen volledige statements en geeft hij elk deel de header van de dump mee. Het voorbeeld is een kleine mysqldump met een doelgrootte van 40 KB, zodat er meerdere delen ontstaan; jouw resultaten hangen af van je bestand.
Voorbeeld · Invoer: community-db.sql, 98 KB, 56 statements, 2 tabellen, trigger, procedure en view
- SQL-bestand
- 98 KB
- Als .sql.gz
- 20 KB
- 4,9 keer kleiner
- Delen onder 40 KB
- 3
- Importproblemen gevonden
- 9
- DEFINER, CREATE DATABASE/USE, MySQL-8-collatie
community-db-part-001.sql 28 KB 17 Statements players, scorescommunity-db-part-002.sql 40 KB 3 Statements scorescommunity-db-part-003.sql 32 KB 18 Statements scoresWaarom deze tool
Een SQL Splitter waarvan je de delen écht kunt importeren
Veel splitters knippen op basis van regels of megabytes en breken daarbij triggers, procedures of records open. Deze leest de dump zoals de mysql-client.
Eerst comprimeren, dan opsplitsen
SQL-dumps bevatten veel herhaalde tekst en worden als .sql.gz vaak vele malen kleiner; phpMyAdmin kan ze direct importeren. De tool berekent eerst de gecomprimeerde grootte. Valt die binnen je limiet, dan hoef je het bestand niet op te splitsen.
Alleen splitsen tussen volledige statements
De parser herkent strings met escapes, commentaar met --, # en /* */, de /*!40101 … */-regels van mysqldump en DELIMITER-blokken. Een puntkomma in een tekst of DELIMITER-blok geldt niet als scheiding.
Grote INSERTs worden per rij opgesplitst
Is een INSERT met veel rijen groter dan één deel, dan wordt die opgesplitst in meerdere INSERTs met dezelfde header, steeds tussen twee records. Als één record op zichzelf te groot is, worden het nummer en de tabel gemeld.
Elk deel afzonderlijk te importeren
De tekenset, SQL-modus, tijdzone en het uitschakelen van de controle op refererende sleutels uit de header van de dump staan in elk deel. Aan het einde wordt alles hersteld. Ook een actieve USE en DELIMITER worden meegenomen.
Importfixes aanvinken
DEFINER, CREATE DATABASE en USE, MySQL 8-collations en replicatieregels: de tool toont hoe vaak ze voorkomen en wijzigt alleen wat je aanvinkt. De fixes werken ook zonder opsplitsen.
Werkt in de browser, ook met honderden MB
Dumps bevatten vaak klantgegevens. Het bestand wordt in een Web Worker gestreamd en verlaat je computer niet. Je ziet de voortgang en kunt annuleren, zonder dat het tabblad vastloopt.
Zo werkt het
Zo importeer je een groot SQL-bestand in drie stappen
Van een te grote dump naar een werkende database, zonder account of upload.
Stap 1
SQL-bestand laden
Sleep het .sql-, .sql.gz- of .zip-bestand naar het veld. De tool leest het in je browser, telt statements en tabellen en zoekt naar veelvoorkomende importproblemen.
Stap 2
Comprimeren of opsplitsen
Kies de uploadlimiet: phpMyAdmin 2 MB, 8 MB of een eigen waarde. Past het bestand als .sql.gz binnen die limiet, dan download je dat ene bestand. Anders deelt de tool het op in delen onder de doelgrootte (bij 2 MB maximaal 1,9 MB), afzonderlijk of als ZIP, desgewenst met importfixes.
Stap 3
Importeren in phpMyAdmin
Selecteer links de database, open het tabblad Importeren, kies het bestand en klik op OK. Importeer meerdere delen na elkaar, te beginnen met deel 1. Je kunt ook een deel kopiëren en op het tabblad SQL plakken.
Foutmeldingen
Waarom de import in phpMyAdmin mislukt en wat helpt
De meest voorkomende meldingen bij het importeren van een SQL-bestand en de bijbehorende stap in de tool.
Import blijft hangen bij ‘Even geduld, het bestand wordt verwerkt.’
Oorzaak: Het bestand is groter dan de uploadlimiet van phpMyAdmin (bij ons 2 MB, weergegeven als ‘Maximale grootte: 2.048 KiB’). phpMyAdmin 5.2 toont dan vaak geen foutmelding; de laadindicator blijft gewoon draaien. Afhankelijk van de serverinstellingen verschijnt in plaats daarvan ‘Er zijn geen gegevens ontvangen om te importeren’.
Oplossing: Uploaden als .sql.gz. Is het bestand dan nog te groot, splits het dan op en importeer de delen na elkaar.
‘Het lijkt erop dat de verbinding met de server is verbroken’ op het tabblad SQL
Oorzaak: De geplakte tekst is te groot. De browser verstuurt de tekst gecodeerd; spaties en speciale tekens tellen daarbij drievoudig en regeleinden zesvoudig. Zo komt 1,9 MB tekst al snel boven 2 MB uit.
Oplossing: Kies in de tool ‘In SQL-console plakken’; dan blijven de delen ook gecodeerd onder de limiet.
#1227 Access denied; you need (at least one of) the SUPER privilege(s)
Oorzaak: Views, triggers of procedures bevatten een DEFINER met een gebruiker van de oude server. MariaDB noemt deze machtiging SET USER; bij SQL_LOG_BIN uit MySQL-dumps heet die BINLOG ADMIN.
Oplossing: Vink de fix ‘DEFINER verwijderen’ aan en bij MySQL-dumps ook ‘Replicatieregels verwijderen’.
#1273 Unknown collation: 'utf8mb4_0900_ai_ci'
Oorzaak: De dump komt uit MySQL 8. MariaDB ondersteunt deze collation niet, ook versie 11.6 niet.
Oplossing: Vink de fix ‘MySQL 8-collations vervangen’ aan.
#1193 Unknown system variable 'GTID_PURGED'
Oorzaak: De dump komt van een MySQL-server met GTID-replicatie. Deze regel bestaat alleen in MySQL.
Oplossing: Vink de fix ‘Replicatieregels verwijderen’ aan.
#1044 Access denied for user … to database …
Oorzaak: De dump maakt met CREATE DATABASE een eigen database aan of schakelt met USE over naar een database waartoe je gebruiker geen toegang heeft.
Oplossing: Vink de fix ‘CREATE DATABASE en USE verwijderen’ aan en kies eerst links de juiste database.
#1452 Cannot add or update a child row: a foreign key constraint fails
Oorzaak: Een deel voegt gegevens toe waarvan de gekoppelde rijen pas in een later deel komen.
Oplossing: De tool schakelt de controle op refererende sleutels in elk deel uit. Importeer de delen toch in de juiste volgorde.
#1050 Table already exists of #1062 Duplicate entry
Oorzaak: Een deel is twee keer geïmporteerd, vaak na een onderbreking.
Oplossing: Begin niet opnieuw: ga verder bij het deel waar de import is afgebroken. Leeg bij twijfel de database en begin opnieuw.
De juiste aanpak
Comprimeren, opsplitsen of een andere tool?
Opsplitsen is niet altijd de beste oplossing. Zo kies je in een minuut.
Weg 1
Comprimeren (.sql.gz)
De snelste aanpak als het gecomprimeerde bestand onder de limiet valt: één bestand, één import, niets gewijzigd.
Weg 2
Opsplitsen met deze SQL Splitter
Als ook het .sql.gz-bestand te groot is en je alleen phpMyAdmin hebt. Meerdere uploads, maar zonder extra software.
Weg 3
HeidiSQL of een andere databaseclient
Voor zeer grote dumps of afzonderlijke records boven de limiet. De client maakt rechtstreeks verbinding met de database; er geldt geen uploadlimiet. Onder Windows: Bestand, SQL-bestand uitvoeren.
Weg 4
mysql-client via de console
Als je een VPS of SSH-toegang hebt: met mysql -u benutzer -p datenbank < dump.sql importeer je zonder de uploadlimiet van phpMyAdmin; voor een .gz gebruik je zcat.
Meer ontdekken
Meer tools
Tekst online vergelijken (Diff Checker)
Teksten online vergelijken: vergelijk twee teksten, configuratiebestanden of codeversies, bekijk verschillen per regel en per woord en kopieer ze als Unified Diff. Werkt volledig in de browser.
Gebouwd door Dimitri Heissler
Hashgenerator (MD5, SHA-1, SHA-256, SHA-512)
NieuwGenereer MD5-, SHA-1-, SHA-256- en SHA-512-hashes van tekst of bestanden en vergelijk checksums. Werkt volledig in je browser.
Gebouwd door Luca Stanek
Bcrypt-generator en -checker
Bcrypt-hashes genereren en controleren — volledig in de browser, met instelbare cost factor.
Gebouwd door Rugile Rutkauskaite
JSON to CSV Converter
Zet JSON om naar CSV en CSV naar JSON: maak geneste objecten plat, herken scheidingstekens, maak CSV voor Excel met BOM en bekijk JSON- en CSV-bestanden als tabel. Werkt volledig in je browser.
Gebouwd door Dimitri Heissler
.htaccess-generator en htpasswd-generator
Maak online Apache-.htaccess- en .htpasswd-bestanden: 301-omleidingen, HTTPS, wachtwoordbeveiliging met bcrypt, WordPress-regels, foutpagina's, caching, GZIP en hotlinkbeveiliging. Werkt volledig in de browser.
Gebouwd door Dimitri Heissler
Online SQL-formatter (SQL formatteren en verfraaien)
Formatteer, verfraai en minimaliseer SQL online – voor MySQL, MariaDB en PostgreSQL, met inspringing en hoofdlettergebruik voor sleutelwoorden. Werkt volledig in de browser, zonder upload.
Gebouwd door Luca Stanek
FAQ
Veelgestelde vragen
Korte antwoorden over phpMyAdmin-imports, SQL-dumps en deze SQL Splitter.
Ofwel één .sql.gz-bestand dat phpMyAdmin rechtstreeks importeert, ofwel meerdere .sql-bestanden die elk onder je limiet vallen, afzonderlijk en als ZIP. Desgewenst ook als .sql.gz en als tekst om te kopiëren. Van community-db.sql met 98 KB wordt als .sql.gz 20 KB gemaakt. Opgesplitst met een doelgrootte van 40 KB levert dat 3 delen op, elk met de header van de dump, in de volgorde waarin je ze importeert. De tool toont bovendien per deel de grootte, statements en tabellen.
phpMyAdmin ontvangt bestanden via PHP, en PHP beperkt de grootte van een upload (upload_max_filesize en post_max_size). Op onze databaseservers is de limiet 2 MB; phpMyAdmin toont dit onder Importeren als ‘Maximale grootte: 2.048 KiB’. Ook tekst die je in het tabblad SQL plakt, valt onder deze limiet. Daarom heeft de tool de modus ‘In SQL-console plakken’: die rekent met de grootte die de browser daadwerkelijk verstuurt en maakt de delen navenant kleiner.
Vaak wel. De limiet geldt voor het geüploade bestand, dus voor het gecomprimeerde bestand, en SQL-dumps bevatten veel herhaalde tekst. phpMyAdmin pakt een .sql.gz bij het importeren zelf uit. De SQL Splitter berekent eerst de grootte van de .sql.gz, laat je zien hoeveel keer kleiner die is en raadt opdelen alleen aan als het gecomprimeerde bestand nog steeds boven je limiet zit.
Laad het .sql-, .sql.gz- of .zip-bestand in de SQL Splitter, bijvoorbeeld een export uit mysqldump, mariadb-dump, phpMyAdmin, HeidiSQL of Adminer. De tool splitst alleen tussen volledige statements: hij herkent strings met escapes, commentaar, /*!…*/-regels en DELIMITER-blokken voor triggers en procedures. Een puntkomma daarin geldt niet als scheiding. Als een INSERT met veel regels groter is dan één deel, wordt die tussen twee records opgesplitst in meerdere INSERTs met dezelfde aanhef. Is één record al groter dan de ingestelde grootte, meestal een afbeelding in een BLOB-kolom, dan vermeldt de tool het statementnummer, de regel en de tabel. Importeer dat deel met HeidiSQL of de mysql-client, of probeer het als .sql.gz te uploaden.
Importeer de delen in numerieke volgorde, deel 1 eerst, en allemaal in dezelfde database. Deel 1 bevat meestal de CREATE TABLE-statements; latere delen vullen de tabellen. Als de dump externe sleutels bevat, schakelt elk deel de controle daarop aan het begin uit en aan het einde weer in. Stopt een deel door een fout, los die dan op en ga verder met precies dat deel. Importeer eerdere delen niet opnieuw, anders krijg je ‘Table already exists’ of ‘Duplicate entry’. Weet je niet meer wat al is geïmporteerd, maak de database dan leeg (selecteer en verwijder in phpMyAdmin alle tabellen op het tabblad Structuur) en begin opnieuw bij deel 1.
Views, triggers, procedures en events slaan op onder welke gebruiker ze worden uitgevoerd (DEFINER). Staat daar een gebruiker van de oude server, bijvoorbeeld root, dan mag jouw databasegebruiker ze niet aanmaken. Vink in de tool ‘DEFINER verwijderen’ aan; de server maakt ze dan aan onder jouw gebruiker. MariaDB noemt de ontbrekende machtiging SET USER. Als de dump uit MySQL komt, kunnen ook de regels SQL_LOG_BIN (machtiging BINLOG ADMIN) en GTID_PURGED problemen geven. Daarvoor is er ‘Replicatieregels verwijderen’.
utf8mb4_0900_ai_ci is de standaardcollatie van MySQL 8. MariaDB kent deze niet, ook versie 11.6 niet, en breekt CREATE TABLE af met #1273. De fix ‘MySQL 8-collaties vervangen’ vervangt deze en de andere 0900-varianten door utf8mb4_unicode_ci, en de hoofdlettergevoelige varianten door utf8mb4_bin. INSERT-statements en dus je gegevens blijven ongewijzigd.
Nee. Een dump bevat vaak klant- en inloggegevens. Daarom leest de tool het bestand alleen in je browser, via een Web Worker. Er is geen upload, opslag of account nodig. Op het tabblad Netwerk van de ontwikkelaarstools kun je zien dat bij het comprimeren en opsplitsen geen verzoek met je bestand wordt verzonden.
Nog vragen?
Contact opnemen met supportJe database zonder uploadlimiet op je eigen VPS
Met een VPS van ZAP-Hosting heb je roottoegang, importeer je grote dumps via de console en beheer je MySQL, MariaDB of PostgreSQL zoals je wilt.
Geen installatie. Geen risico. Binnen enkele seconden online.
Op zoek naar meer tools? Alle ontwikkelaarstools bekijken
