MySQL to Neon converter
Move your MySQL data to Neon — convert the dump or migrate live.
Upload a dump file
Free
Export with mysqldump,
upload the .sql file,
and download PostgreSQL-ready SQL to import into Neon. Powered by a real engine —
AUTO_INCREMENT, ENUMs, zero dates all handled.
// converter
uploads deleted on completion real engine, not regex free account, e-mail only
Live MySQL-to-Neon
Free up to 5 MBNo dump file needed. Enter your MySQL connection details and paste your Neon connection string — SwapSQL reads from one and writes to the other.
- ✓ Paste your Neon connection string as the target
- ✓ Test both connections before starting
- ✓ Tables, data, indexes and keys transferred directly
- ✓ Full report when the migration completes
- ✓ Import into any Neon branch — main, dev, or a fresh one
Compare plans — or start free, upgrade when you need it.
Step 1 — Export your MySQL database
mysqldump --single-transaction --no-tablespaces \
-h HOST -u USER -p DATABASE_NAME > dump.sql
# compress for faster upload:
gzip dump.sql Need more detail (Docker, phpMyAdmin, remote servers)? See the full mysqldump guide.
Step 2 — Convert it
Drop dump.sql (or dump.sql.gz) into the box above. The dump is loaded
into an isolated MySQL 8.0 sandbox, migrated to PostgreSQL 16 table-by-table, and exported
with pg_dump — so the file you download is guaranteed-valid PostgreSQL, ready for Neon.
Step 3 — Import into Neon
Copy your connection string from the Neon console under Connection Details. Select the branch you want to import into.
psql "postgresql://[user]:[password]@[endpoint-id].us-east-2.aws.neon.tech/[dbname]?sslmode=require" \
-f dump.postgresql.sql What converts automatically
- Tables, column types (full mapping table), character sets → UTF-8
- All data, including JSON, BLOBs and emoji/multibyte text
- Primary keys, foreign keys, unique constraints, indexes
- AUTO_INCREMENT → sequences, reset to the correct next value
- ENUM and SET columns → native PostgreSQL types
After importing: Neon-specific tips
- Create a development branch from your imported data for testing before going live
- Neon's autoscaling works with the imported schema — no configuration needed
- Set up connection pooling if your application uses many concurrent connections
- Update your application's connection string to point to your Neon endpoint
// faq
Frequently asked questions
How do I migrate a MySQL database to Neon?
Export your MySQL database with mysqldump, upload it above to convert it to PostgreSQL, then import the result into Neon with psql using your Neon connection string.
Does AUTO_INCREMENT convert correctly for Neon?
Yes. AUTO_INCREMENT columns become PostgreSQL identity columns (or sequences), and the counter continues from your highest existing id. Neon handles them natively — it's standard PostgreSQL.
What happens to ENUM columns?
MySQL ENUMs become native PostgreSQL ENUM types, which Neon supports fully. The same labels and constraints carry over.
Can I import into a specific Neon branch?
Yes. Each Neon branch has its own connection string. Use the connection string for whichever branch you want to import into — the main branch, a development branch, or a new branch created for the migration.
What about zero dates like 0000-00-00?
PostgreSQL (and therefore Neon) rejects MySQL's zero dates, so they are converted to NULL. Any affected rows are counted in the conversion report.
Can I migrate directly without a dump file?
Yes — live migration is included on the free plan for source databases up to 5 MB (two per day). Enter your MySQL source connection and your Neon connection string as the target, and SwapSQL transfers everything directly. The Pro plan removes the size and daily limits.