Back in 2001, when I was still illegal in this country, I was working for a company called Web Business Development Inc. on Plummer Street in Chatsworth, California, for twenty dollars a day in cash. That last part is a different story for a different article. What matters here is what they had me doing: moving a stack of MySQL databases off a Cobalt RaQ 4 — the little blue pizza-box appliance running MySQL, Chili!Soft ASP, and phpMyAdmin — onto an IBM Windows box.
I couldn’t find a tool that did what I needed, so I started writing one in Java Swing. I just kept writing. Add a feature, hit a wall, add another feature. By the time I looked up I had a complete MySQL UI that could open connections to multiple servers at once and copy entire databases across them, server to server, live. I named it Tarantula, because it had legs into a lot of machines at the same time.
It talked to MySQL through the JDBC driver. And when I decided I wanted to sell it — sixty dollars a copy, a fair price for a working tool in 2001 — I did the responsible thing. I called MySQL and asked what it would cost to bundle their JDBC driver with my product.
They told me a hundred dollars a copy.
I want you to sit with the math there, because I did. I planned to charge sixty. Their driver license would cost me a hundred. On every single copy I sold, I would lose forty dollars. I explained this to them slowly, the way you explain something to a person you assume simply misheard you. Their answer was — and I’m quoting from memory, but the tone is burned in — too bad.
Then they made me an offer. I could “contribute” my source code to them. For free. And for the next six months they kept calling. Different people, same ask. Give us the code. I kept saying no, and eventually I did the only thing that made sense: I released Tarantula for free on Download.com, no source code, and walked away.
That was the day I was done with MySQL. Not the database — the company. Because a company I had assumed was one of the good ones, one of us, the scrappy open-source underdogs fighting the Oracle empire, had just shown me exactly what it was. They did not want the obvious win. A free-to-cheap tool that made their database easier to use and more popular was pure upside for them, and they knew it. That is why they wanted the code. Not to kill it — to own it. They wanted a hundred percent of their ecosystem, including the parts other people built, and if you wouldn’t hand yours over, they would price you out of existence and wait.
Here is the thing I understand now that I didn’t understand at twenty-something with a Swing IDE open: that wasn’t a rogue salesperson having a bad day. That was the business model.
The moat was openness. The tollbooth was the license.
MySQL was never a charity that happened to charge money. Monty Widenius and David Axmark started it out of Sweden in the mid-nineties, named it after Monty’s daughter My, and in June of 2000 they relicensed the whole thing under the GPL. Adoption went vertical. It became the M in LAMP, the default database of the entire first web boom — Facebook, YouTube, Flickr, Wikipedia, all of it.
But the GPL wasn’t generosity. It was a moat with a gate. MySQL AB ran a dual-license model: you could have the free GPL version, which came with a catch — if you built commercial software on top of it and didn’t want to open-source your own code, you had to buy a commercial license instead. That entire arrangement only works if one company owns a hundred percent of the copyright. Which is why every contributor had to sign their rights over, and why a kid with a Java tool got a phone call asking him to donate his source. It wasn’t personal. It was structural. They needed to own everything that touched the core so they could sell the exception to the GPL to anyone who couldn’t live inside it.
And the timing of my particular wall wasn’t an accident either. The JDBC driver, Connector/J, had been available under the friendlier LGPL, which lets you link it into proprietary software without the whole thing becoming GPL. Right around version 4.0 — right when I called — that changed. The driver moved under the stricter regime, and suddenly bundling it in a closed commercial product meant paying the toll. I hadn’t hit a bug in their pricing. I’d hit the wall on purpose, exactly where they built it.
Fine. It was their code, their license, their right. I released my thing for free and got on with my life. But the universe, it turns out, keeps a ledger.
Enter the empire.
Here is where it gets good, and by good I mean cosmic. MySQL spent years defining itself as the open-source answer to Oracle — the plucky Swedes against the Redwood Shores machine. And Larry Ellison, who did not become Larry Ellison by leaving loose threads, started quietly pulling the ground out from under them.
In October 2005, Oracle bought Innobase, the small Finnish company behind InnoDB — the storage engine that gave MySQL the transactions and foreign keys its own default engine couldn’t do. The one piece MySQL actually depended on for anything serious was now owned by its arch-rival. A few months later, in February 2006, Oracle bought Sleepycat, makers of Berkeley DB, another MySQL storage engine. Analysts at the time said the quiet part out loud: it was hard to see why Oracle did it other than to mess with MySQL. Oracle now owned the chokepoints above the company that thought of itself as everyone else’s chokepoint.
MySQL, the company that priced me out over a driver I depended on, was now the one depending on drivers owned by someone who did not like them. I didn’t know any of this at the time. If I had, I might have felt something warm.
Sold, and sold again.
Then came the sale. In January 2008, Sun Microsystems bought MySQL AB for about a billion dollars. For a year it looked like a soft landing — Sun was the open-source true believer, releasing Solaris and Java into the wild, a natural home. The founders started leaving almost immediately anyway.
And then the ledger closed the loop. In 2009, Oracle announced it was buying Sun. Which meant Oracle was buying MySQL. The company that had spent fifteen years as the anti-Oracle was about to become an Oracle product. Monty Widenius understood exactly what that meant, and he did two things. He launched a Save MySQL campaign, gathered more than fifty thousand signatures, and begged the European Commission to block the deal or force a divestiture, warning anyone who would listen that Oracle would let his life’s work wither. And as the deal loomed, he forked MySQL into MariaDB and took a chunk of the core developers with him — a GPL-only escape pod, built by the man who invented the thing, because he did not trust the new owner to keep it alive.
The EU let the deal through. Oracle made a public commitment to keep MySQL going and to preserve the dual-license model at least through 2015, cross its heart. Monty got his signatures and lost his company anyway. The man whose business once demanded my source code for free now had to fork his own creation and lobby a government to protect it. If there’s a cleaner picture of a wheel coming all the way around, I haven’t found it.
“Not maintaining the core product. Letting it rot.”
Here is the part where I get to tell you Monty was right, because the receipts are public and they are brutal.
For a while after 2010, Oracle actually did keep MySQL moving — 5.5, 5.6, 5.7. Then the neglect set in, slowly, exactly the way he predicted. Development disappeared behind closed doors; the public bug tracker isn’t even the real one the Oracle engineers use, and outside pull requests go there to die. The interesting features started flowing into HeatWave, Oracle’s proprietary paid analytics service built on top of MySQL, while the open-source community got what amounted to the toothpaste-squeezings. There was a six-year gap between MySQL 8.0 in 2018 and the next real release, 8.4, in 2024 — and when 8.4 finally landed, it shipped with barely any new features. Performance on ordinary workloads actually regressed; benchmarks show recent versions running meaningfully slower than 8.0 on write-heavy jobs, while MariaDB and PostgreSQL got faster and added features at the same time.
Then it stopped pretending. In September 2025, Oracle laid off something like seventy engineers from the core MySQL team — by the estimate of Percona’s Peter Zaitsev, who has been in this world for two decades, as much as sixty to seventy percent of the engineering team, gone. The community manager left for the MariaDB Foundation. And then the number that should end any argument: the public MySQL server repository on GitHub went silent, with no commits for more than three months, from September 2025 into 2026. Annual commits to the project had already fallen from more than twenty-two thousand in 2010 to under five thousand in 2024. The active contributor pool roughly halved. In 2025 alone Oracle published more than a hundred and twenty security CVEs against MySQL — most with barely enough detail to verify — against eight for MariaDB. Monty called it heartbreaking. Zaitsev called it Oracle slowly killing the community edition. They are describing the same thing I watched begin twenty-five years ago from the other end of a phone call: a company that wanted a hundred percent of the ecosystem, getting exactly that, and then losing interest in it.
Letting it rot. And look — I never maintained Tarantula either. I released it and walked, and I am not going to stand here and pretend a free tool I abandoned makes me some monument to stewardship. It is, in fact, still sitting on Download.com right now, a quarter century later, exactly where I left it — and it almost certainly will not run on anything you own. Its install page still cheerfully instructs you to go download Java 1.1.8 from Sun’s web site, a company that no longer exists because Oracle ate it too. So I am the last person on earth to lecture anyone about abandonment. But there is a difference between one guy walking away from something he gave away for nothing, and a company worth hundreds of billions of dollars standing in front of a global open-source community, promising a regulator it would be a good steward, and then quietly turning off the lights while pointing everyone toward the paid tier.
Meanwhile, the tortoise finished the race.
And here is the final, almost unfair twist. For twenty-five years, MySQL beat PostgreSQL by being the easy one. Postgres was the correct database, the standards-compliant one, the database for people who enjoyed reading release notes — and it lost, over and over, to the database you could stand up in an afternoon. MySQL won on convenience for two decades straight.
It doesn’t anymore. In the 2025 Stack Overflow developer survey, PostgreSQL was used by 55.6 percent of professional developers against MySQL’s 40.5 percent, and Postgres has been the most-admired and most-wanted database three years running. On the DB-Engines popularity index, MySQL shed roughly a hundred and thirty points in a single year while Postgres climbed. Serverless Postgres erased the last operational reasons to reach for MySQL, and pgvector made Postgres the default substrate for the entire AI and RAG wave — the exact workload every one of us is building right now. The rigorous database that spent twenty years losing to the easy one finally won the moment correctness and extensibility started to matter more than how fast you could stand it up. The tortoise didn’t just finish. It lapped the field.
So — is the slow death of MySQL really that bad?
Which brings me back to the question in the title. I’ll give you the practitioner’s answer, not the sentimental one.
The technology is not the tragedy. The technology was always a compromise, and everyone who ran it in production knew it. MySQL’s whole appeal was that it would rather make it work than make it correct. For years its default storage engine, MyISAM, had no transactions and no foreign keys and locked whole tables at a time. For years it would take a string too long for your column and silently chop it to fit, writing a warning to a log file nobody reads instead of throwing an error — so your data got quietly corrupted and you found out about it in production. It would take the string “12.5x,” store 12.5, and say nothing. Its utf8 wasn’t even real UTF-8; it was a three-byte impostor that couldn’t hold an emoji, and you had to know to ask for utf8mb4 to get the actual standard. It would happily run a GROUP BY that returned columns which made no logical sense. Every one of those was the same instinct that got me the hundred-dollar quote: optimize for the easy path, keep the user hooked, and don’t sweat the parts that only bite later. It was a feature in the LAMP era and a liability the second anyone’s data actually mattered.
So no. The slow death of that specific thing — a corner-cutting database owned by a single company that wanted to control every inch of its ecosystem and then lost interest in maintaining it — is not bad. It is overdue, and the value didn’t even die with it. MariaDB caught the open-source torch Monty carried out the door. PostgreSQL caught everything else. The database is fine. The arrangement is what’s dying, and the arrangement earned it.
I am not sad about any of it. I am the guy MySQL treated as a rounding error in 2001, priced out of a fair deal over a forty-dollar driver, hounded for six months for source code I wrote with my own hands for twenty bucks a day. Twenty-five years later I get to sit in Las Vegas and watch the same company that couldn’t spare me that win get its crown jewel slowly rotted by the one enemy it swore it would never become — while the careful, correct, uncool database it spent two decades outrunning quietly takes the crown.
Some people call that market forces. I call it karma. And I’ll take it.
About the Author
Gal Ratner is the founder and CTO of Inverted Software and WhiteStar Labs, and Chief Architect at Prana Entertainment. For nearly thirty years he has shipped production software on the Microsoft and .NET stack for clients including Microsoft, Sony, Rockstar Games, 2K Games, Best Buy, and Allegiant Air, and today he builds production agentic AI systems — Microsoft Agent Framework, MCP servers, RAG pipelines, and SQL Server 2025 vector search. He is the .NET AI guy that ships. He also, a very long time ago, wrote a MySQL tool called Tarantula, got a hundred-dollar quote for a sixty-dollar product, and has been keeping score ever since. He writes about the reality of building software — the parts the vendors leave out — on Substack.






