You decide which services we may enable for analytics, personalization, and external content.
We use cookies and similar technologies on our website to personalize content, embed external media, and better understand how individual areas are used.
Necessary cookies
These entries support essential functions such as security, stability, and form processing.
Optional sections
Your data may be processed with your consent or on the basis of legitimate interests. In the cookie settings, you can reject or explicitly allow each optional category.
Some services process personal data in third countries. By consenting, you also agree to this transfer. You can find more information in our Privacy Policy.
You can reopen and change your selection at any time. · 1.0.2
Is your SQL file too large to import into phpMyAdmin? The SQL Splitter compresses it as .sql.gz or splits it between complete statements into parts under 1.9 MB, such as community-db.sql at 98 KB in 20 KB as .sql.gz. Free, no sign-up or upload required: your file stays in your browser.
Built by Justin Schuessler
On your own VPS, you can import large dumps through the console without phpMyAdmin's upload limit.
Your file stays in your browser: it is neither uploaded nor stored.
Example result
First, the tool checks whether the compressed file is already under your limit. If not, it splits the dump between complete statements and includes the dump header in every part. This example uses a small mysqldump with a target size of 40 KB to produce multiple parts; your results depend on your file.
Example · Input: community-db.sql, 98 KB, 56 statements, 2 tables, trigger, procedure and view
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 scoresWhy this tool
Many splitters cut by line or megabyte, breaking triggers, procedures or records. This one reads the dump like the mysql client.
SQL dumps contain a lot of repeated text and are often many times smaller as .sql.gz files. phpMyAdmin can import them directly. The tool calculates the compressed size first. If it fits within your limit, you don't need to split the file.
The parser recognizes strings with escapes, --, # and /* */ comments, mysqldump's /*!40101 … */ lines and DELIMITER blocks. A semicolon inside a string or DELIMITER block does not split a statement.
If an INSERT with many rows exceeds the part size, it is split into multiple INSERTs with the same header, always between records. If a single record is too large on its own, the tool reports its number and table.
Character set, SQL mode, time zone and foreign key settings from the dump header are included in every part, and all settings are restored at the end. The active USE and DELIMITER are carried over too.
DEFINER, CREATE DATABASE and USE, MySQL 8 collations, and replication lines: the tool shows how often they occur and only changes what you select. You can also apply the fixes without splitting.
Dumps often contain customer data. The file is streamed in a Web Worker and never leaves your computer. You can track progress and cancel without the tab freezing.
How it works
From an oversized dump to a ready-to-use database, with no account or upload.
Step 1
Drag a .sql, .sql.gz, or .zip file into the box. The tool reads it in your browser, counts statements and tables, and checks for common import issues.
Step 2
Choose an upload limit: phpMyAdmin 2 MB, 8 MB, or a custom value. If the .sql.gz file fits, you can download it as a single file. Otherwise, the tool splits it into chunks below the target size (at most 1.9 MB for 2 MB), available individually or as a ZIP, with optional import fixes.
Step 3
Select the database on the left, open the Import tab, choose the file and click OK. For multiple parts, import them one after another, starting with part 1. Or copy a part and paste it into the SQL tab.
Error messages
The most common messages when importing an SQL file and what to do in the tool.
Cause: The file exceeds phpMyAdmin's upload limit (2 MB on our servers, shown as “Maximum size: 2,048 KiB”). phpMyAdmin 5.2 often shows no error; the loading indicator just keeps spinning. Depending on the server settings, you may instead see “No data was received to import”.
Solution: Upload it as .sql.gz. If it is still too large, split it and import the parts one after another.
Cause: The pasted text is too large. The browser sends it encoded: spaces and special characters count three times, and line breaks six times. That means 1.9 MB of text can quickly exceed 2 MB.
Solution: Choose “Paste into SQL console” in the tool so the parts stay under the limit even when encoded.
Cause: Views, triggers or procedures have a DEFINER set to a user from the old server. MariaDB calls this privilege SET USER; SQL_LOG_BIN in MySQL dumps requires BINLOG ADMIN.
Solution: Select the “Remove DEFINER” fix and, for MySQL dumps, “Remove replication lines”.
Cause: The dump comes from MySQL 8. MariaDB does not support this collation, even in version 11.6.
Solution: Select the “Replace MySQL 8 collations” fix.
Cause: The dump comes from a MySQL server with GTID replication. This line is specific to MySQL.
Solution: Select the “Remove replication lines” fix.
Cause: The dump creates its own database with CREATE DATABASE or switches with USE to one your user cannot access.
Solution: Select the “Remove CREATE DATABASE and USE” fix, and first select the correct database on the left.
Cause: A part inserts data whose related rows only arrive in a later part.
Solution: The tool disables foreign key checks in each part. You still need to import the parts in order.
Cause: A part was imported twice, often after an import was interrupted.
Solution: Don't start over: resume with the part that failed. If you're unsure, empty the database and start again.
The right approach
Splitting is not always the best option. Here's how to decide in a minute.
Path 1
The fastest option when the compressed file is under the limit: one file, one import, no changes.
Path 2
When even the .sql.gz is too large and you only have phpMyAdmin. It takes multiple uploads but no additional software.
Path 3
For very large dumps or individual records over the limit. The client connects directly to the database, so there is no upload limit. On Windows: File, Run SQL file.
Path 4
If you have a VPS or SSH access, mysql -u benutzer -p datenbank < dump.sql imports without phpMyAdmin's upload limit; use zcat for a .gz file.
Discover more
Compare text online: Compare two texts, configs, or code versions, see differences line by line and word by word, and copy them as a Unified Diff. Runs entirely in your browser.
Built by Dimitri Heissler
Generate MD5, SHA-1, SHA-256, and SHA-512 hashes from text or files and compare checksums. Runs entirely in your browser.
Built by Luca Stanek
Generate and verify Bcrypt hashes—entirely in your browser, with an adjustable cost factor.
Built by Rugile Rutkauskaite
Convert JSON to CSV and CSV to JSON: flatten nested objects, detect delimiters, create Excel-ready CSV with BOM, and preview JSON and CSV files as tables. Runs entirely in your browser.
Built by Dimitri Heissler
Create Apache .htaccess and .htpasswd files online: 301 redirects, HTTPS, password protection with bcrypt, WordPress rules, error pages, caching, GZIP, and hotlink protection. Runs entirely in your browser.
Built by Dimitri Heissler
Format, beautify, and minify SQL online for MySQL, MariaDB, and PostgreSQL, with indentation and keyword casing. Runs entirely in your browser, with no uploads.
Built by Luca Stanek
FAQ
Quick answers about phpMyAdmin imports, SQL dumps, and this SQL Splitter.
Either one .sql.gz that phpMyAdmin can import directly, or multiple .sql files, each under your limit. The parts are available individually and as a ZIP, optionally also as .sql.gz and as text to copy. community-db.sql (98 KB) becomes 20 KB as .sql.gz, or 3 parts when split at a target size of 40 KB. Each part includes the dump header and is listed in import order. The tool also shows each part's size, statements and tables.
phpMyAdmin receives files through PHP, which limits upload size (upload_max_filesize and post_max_size). On our database servers, the limit is 2 MB; phpMyAdmin displays this under Import as “Maximum size: 2,048 KiB”. Text you paste into the SQL tab is subject to the same limit. That's why the tool has a “Paste into SQL console” mode: it calculates the size the browser actually sends and makes the chunks smaller accordingly.
Often, yes. The limit applies to the uploaded file—the compressed one—and SQL dumps contain a lot of repeated text. phpMyAdmin decompresses a .sql.gz file itself during import. The SQL Splitter calculates the .sql.gz size first, shows you how much smaller it is, and recommends splitting only if the compressed file still exceeds your limit.
Load a .sql, .sql.gz or .zip file into the SQL Splitter, such as an export from mysqldump, mariadb-dump, phpMyAdmin, HeidiSQL or Adminer. It splits only between complete statements: the tool recognizes strings with escapes, comments, /*!…*/ lines and DELIMITER blocks for triggers and procedures, so semicolons inside them do not cause a split. If a multi-row INSERT is larger than one part, it is divided between records into multiple INSERTs with the same statement header. If a single record exceeds the target size, usually an image in a BLOB column, the tool identifies the statement number, line and table. Import that part with HeidiSQL or the mysql client, or try uploading it as .sql.gz.
Import the numbered parts in order, starting with part 1, all into the same database. Part 1 usually contains the CREATE TABLE statements; later parts populate the tables. If the dump has foreign keys, each part disables foreign key checks at the start and re-enables them at the end. If a part fails, fix the error and resume with that same part. Do not import earlier parts again, or you'll get “Table already exists” or “Duplicate entry”. If you're unsure what's already been imported, empty the database (in phpMyAdmin, select and drop all tables on the Structure tab) and start again with part 1.
Views, triggers, procedures, and events store the user account they run under (DEFINER). If that account belongs to the old server, such as root, your database user cannot create them. Select “Remove DEFINER” in the tool, and the server will create them under your user account. MariaDB calls the missing privilege SET USER. If the dump comes from MySQL, the SQL_LOG_BIN (BINLOG ADMIN privilege) and GTID_PURGED lines may also fail; use “Remove replication lines” for those.
utf8mb4_0900_ai_ci is the default collation in MySQL 8. MariaDB doesn't support it, even in version 11.6, and stops at CREATE TABLE with error #1273. The “Replace MySQL 8 collations” fix replaces it and the other 0900 variants with utf8mb4_unicode_ci, and the case-sensitive variants with utf8mb4_bin. It leaves INSERT statements—and therefore your data—unchanged.
No. Dumps often contain customer data and credentials, so the tool reads the file only in your browser, in a Web Worker. There is no upload, storage, or account. In the developer tools’ Network tab, you can see that compressing and splitting sends no request containing your file.
Any more questions?
Contact SupportWith a ZAP-Hosting VPS, you have root access, can import large dumps through the console and can run MySQL, MariaDB or PostgreSQL however you want.
No setup. No risk. Online in seconds.
Looking for more tools? View all developer tools
© 2026 ZAP-Hosting GmbH