Weâve been running production on DigitalOcean since 2015. I used to be a fan. I was even one of those folks who said âDO is the new Herokuâ with pride.
Then I tried to leave their Managed MySQL service.
Now? I say this with full chest:
DigitalOceanâs Managed MySQL is the Hotel California of hosting. You can check in any time you like, but you can never leave.
đĽ TL;DR (for Devs in a Hurry)
- We moved an 800GB production MySQL DB to DigitalOcean Managed MySQL
- Wanted to move out? Surprise: only way is
mysqldump
- Our dump+restore took 5 days â unusable for real apps
- No support for Percona XtraBackup (
BACKUP_ADMIN
not allowed) - No support for replication (no binlog access)
- DO confirmed: no workaround, no help, no options
- Our business is now stuck â and potential sale is blocked
- Moral: Never use DO Managed MySQL if you care about portability
đ The Move In Was Easy
Two years ago, we moved our production MySQL database â 800GB and growing â from a self-hosted droplet to DigitalOceanâs Managed MySQL offering.
They pitched us the usual: high availability, backups, offloaded ops work, improved security. And hey, itâs just a few clicks, right?
Moving in was simple.
Itâs moving out thatâs impossible.
đŤ The Only Way Out: mysqldump
Let me save you some time: the only way DigitalOcean lets you get your data out of their managed MySQL is mysqldump
.
No joke. That's it.
If your database is a few gigs, fine. If it's hundreds of gigs with write traffic? Welcome to the abyss.
We ran a full test dump and restore on a production-grade server. Not theoretical. It took 5 days.
Thatâs five full days of read-only or downtime if you want consistency. If your app writes during that window? You lose data or break integrity.
How do I know this? We tried it.
đ§° Better Tools Exist â But DO Wonât Let You Use Them
Percona XtraBackup is a standard tool for large, hot MySQL backups. It works beautifully. Fast, reliable, supports compression, and lets you keep things running.
But it requires the BACKUP_ADMIN
privilege (or, in older MySQL, RELOAD
and LOCK TABLES
, depending on config).
DigitalOcean doesnât let you assign that permission.
Their words, not mine:
âIt is not possible to add BACKUP_ADMIN or use XtraBackup with managed MySQL.â
Cool. So... replication then?
â No Replication Either
Replication would be the obvious move: spin up your own MySQL server, set up as a replica, sync, and cut over when ready.
Nope. Denied.
DO support, again:
âIt is not possible to set up replication on a managed database.â
Why? Because you donât get access to the binary logs (binlog-do-db
, binlog_format
, etc). You canât even inspect or request the files needed to set it up.
So hereâs the scoreboard:
Exit Strategy | DO Managed MySQL Support |
---|---|
mysqldump | â (but incredibly slow) |
Percona XtraBackup | â Not supported |
Replication | â Not supported |
Raw file access | â Nope |
đ§Ż The Support Experience
To their credit, support was polite.
But "polite" doesnât fix the problem. Their tone was mostly robotic and mildly argumentative.
âSnapShooter utilizes mysqldump for MySQL backups, which can be challenging for large databases due to extended backup and restore times.â
âWe do not offer any database migration services.â
âThe only available option is to take a dump.â
"Take a dump." Yes. We did. Into production. It wasnât pretty.
đ The Real Cost of Lock-In
This isnât a blog rant for rantâs sake.
We were preparing to sell the company. That database is our heart, our brain, and our product. And we cannot move it.
You cannot sell a product thatâs locked into a vendor you canât control.
Weâre now in a position where our entire infrastructure has to be rebuilt, except for the one service we canât escape.
Thatâs lock-in. Not in the abstract, but in the most real, money-losing, career-draining way.
đ¨ Devs, Founders, Ops People: Be Warned
If you're considering DigitalOcean's managed services â specifically MySQL â do not do it unless you're prepared to stay forever.
There's no replication.
No fast backup.
No self-serve migration path.
No raw data access.
No xtrabackup support.
Only mysqldump
. Slow, brittle, ancient, downtime-heavy mysqldump
.
And yes â they confirmed it all.
đ Final Thoughts
After nearly 10 years and tens of thousands of dollars spent with DO, weâre moving everything off the platform.
Everything we can.
The managed database? It's still there. Because there's literally no safe way to get it out.
So yeah. DigitalOceanâs Managed MySQL isnât managed. Itâs confined. Be smarter than I was. Choose infra that respects your exit strategy.
If youâre running anything bigger than a toy app, think long and hard before giving up control of your database.
Bonus
If you're building a business and want to avoid messes like this, I wrote a book called From Monkey to Mogul thatâs all about these hard-learned lessons.
I also cry into my keyboard on LinkedIn sometimes. Say hi there too.
Top comments (0)