A local copy of your MySQL database, real data included
dbplex is a Mac app that copies a MySQL database to a local MySQL 8.4 server on your Mac, with every table and row, and gives you a localhost URL for your app, your tests and your AI agent. Production is only read.
For Apple Silicon Macs. 7 days free with every feature. No card and no account.
- Runs on
- MySQL 8.4
- Download
- About 165 MB
- Needs
- A connection string, no Docker
- Production
- Only read, never written to
What comes with a MySQL copy
Copied to your Mac
- Tables and rowsEvery table and row of one database, masked where you choose.
- Views and triggersWith the rest of the schema.
- EventsCopied, but they do not run: the event scheduler of a local copy starts off.
Left behind, and why
- Routines the user cannot readGrant SELECT, SHOW VIEW, TRIGGER and EVENT so everything comes across.
- Other databases on the serverEach copy is one database, the one the connection string names.
After each pull the Connect tab lists what was left out.
What you paste
One connection string that names the database.
mysql://user:password@host:3306/dbIt must end with the database name. The user needs SELECT, SHOW VIEW, TRIGGER and EVENT.Read only. Nothing is ever written to production.
You can also start from a dump file, or from an empty database.
Then point your app at the copy
mysql://root@127.0.0.1:15000/dbThe port is the first free one from 15000, so yours may differ. The Connect tab shows the exact values.
Where to find the MySQL connection string
- PlanetScaleCopy the MySQL connection string for your branch.
- Google Cloud SQLUse the public IP. A private IP cannot be reached from your Mac.
- Azure DatabaseCopy the MySQL connection string from the portal.
Why not mysqldump and a local MySQL?
Both get you a database. Only one gets you a copy you can throw away and make again.
| mysqldump and a local MySQL | dbplex | |
|---|---|---|
| Data | Dump, create the database, import, wait. | One Pull. |
| Personal data | Every email and name lands on your laptop. | Masked on the way in, where you choose. |
| Back to production | You write the migration by hand. | The Changes tab writes it, and you can rehearse it on a throwaway copy. |
| Going back | Import the dump again. | Save a state and restore it. |
| Fresh data | Dump and import again. | One Refresh button. |
What you can do with a MySQL copy
- Browse tables and run SQLOn real rows, in the app or with any MySQL client.
- See the schema graphEvery table and the keys between them, drawn from the copy.
- Get the migration scriptThe Changes tab compares the copy with production and writes the script in the order it must run. In beta.
- Rehearse the migrationRun the script on a throwaway copy of the data and see what each statement did.
- Mask personal columnsEmails, names and other personal columns are masked as the copy is pulled. You confirm each one.
- Save and restore statesSave before a risky change and go back to it.
- Branch the copyWork on a second copy, from now or from the last pull, and keep the first as it is.
- Back up productionDaily or weekly, read-only, to a folder you choose. Each backup opens as a new copy.
- Refresh from productionOne button replaces the copy with today's data.
- Read the logsThe server log of the copy, in the Logs tab.
A MySQL sandbox for your AI agent
Give Claude Code, Cursor, Codex or Windsurf a copy of production to test on, and let it break things. dbplex's built-in MCP server hands the agent your local MySQL copy, never production: it never sees your production credentials, and every tool it gets acts on local copies only.
Add it from the app's Settings. Events do not run, since the event scheduler starts off. A federated table or a server entry can still point at another server, and dbplex lists each one it finds after a pull.
- Run SQL on real rowsReads, writes and schema changes, on the copy only.
- Save a state before it tries somethingAnd restore it when the attempt goes wrong.
- A branch for each agentEach agent clones the copy and works alone. A clone holds no credentials and can never reach production. It can get the script of the schema changes it made there.
- Get the migration scriptIt compares the copy with production, read-only, and gets the SQL for what changed. Nothing in dbplex runs it.
- Rehearse it firstIt runs the script on a throwaway server and reads what each statement did.
- Personal columns maskedMasked as the copy is pulled, where you choose, before the agent reads a row.
- Start over with today's dataIt can refresh the copy from production, and never sees the credentials.
- Read the logsThe newest lines of the server log.
Questions about MySQL in dbplex
Can dbplex change my MySQL production database?
No. It only reads production to make your copy, and it has no push, sync or way to write anything back. The credentials stay in your Mac's Keychain.
Which privileges does the MySQL user need?
SELECT, SHOW VIEW, TRIGGER and EVENT on the database. Without them some routines may be left out, and dbplex says which.
Can I copy every database on the server at once?
No. Each copy is one database, so the connection string must end with its name. Make one copy per database.
Does it work with PlanetScale?
Yes, and with Google Cloud SQL, Azure Database and any MySQL server you can reach.
Do I need Docker for MySQL?
No. dbplex runs MySQL 8.4 itself, on your Mac.
Can my AI agent use the MySQL copy?
Yes. Add dbplex's MCP server to Claude Code, Cursor, Codex or Windsurf from the app's Settings. It can run SQL, branch its own copy, save and restore states, get the migration script for its changes and rehearse it on a throwaway server. Every tool acts on local copies only, and the agent never sees your production credentials.
Other databases dbplex copies
Break prod. Locally.
Try it on your own MySQL database for 7 days. No card and no account.