Oracle Owns MySQL Now
If you run a WordPress blog or a small PHP app on a cheap VPS, the database under it has a new owner. On January 27, Oracle announced that it had completed its acquisition of Sun Microsystems, and Sun is the company that bought MySQL in 2008. So the default database of the LAMP stack now belongs to the leading proprietary database vendor.
That sounds dramatic. For a small site, the honest answer is that nothing about your server changed on January 27, and nothing needs to change this week either. It’s still worth ten minutes of thought, mostly because that thinking pushes you toward habits you should have anyway.
How we got here
Oracle and Sun announced the deal in April 2009. The holdup was Europe. The European Commission opened an in-depth investigation on September 3 and spent the autumn on one question that actually matters to us: would the leading proprietary database vendor owning the leading open source database hurt competition?
On January 21 the Commission cleared the acquisition, and its reasoning is a good read. It pointed to PostgreSQL as a credible alternative in the eyes of many database users. It noted that forks of MySQL are legally possible because of its open source license, and might grow into real competition. And it took into account pledges Oracle made publicly on December 14, 2009, including continuing to release future versions of MySQL under the GPL. Six days after that decision, Oracle closed.
What changes for your server
Right now, nothing. The MySQL 5.1 your distro packaged is GPL software, and the license on the code you already have doesn’t change because the trademark changed hands. Your distro’s security updates come from your distro, same as last month.
The things that could shift over time are the ones Oracle controls directly: how fast new versions come out, what ends up in the free community release versus paid products, and how outside contributions get treated. Those are fair questions, but they play out over years, not weeks, and none of them need a response from you this morning.
Where MariaDB fits
The fork the Commission talked about isn’t hypothetical. MariaDB is a branch of MySQL started by Michael “Monty” Widenius, the founder of MySQL, and developed at Monty Program. On February 1 it shipped MariaDB 5.1.42, the first release in its 5.1 series marked stable, following two betas last autumn and a release candidate in January.
It’s built on MySQL 5.1.42, merges in the upstream changes, and includes XtraDB 1.0.6-9, a drop-in replacement for InnoDB. The release notes say that in most respects MariaDB works exactly like MySQL, with the same commands, interfaces, libraries and APIs. There are generic Linux binaries, packages for Debian, Ubuntu, RHEL and CentOS, and a Windows build.
My take: I wouldn’t swap out a working production database for a week-old stable release because of a headline. But I’d keep MariaDB on the radar and try it on a dev box. Because it’s meant to behave like the MySQL 5.1 you already run, the experiment is cheap, and knowing you have somewhere to go is most of the value.
Keep your data able to leave
The best hedge doesn’t involve picking a side. It’s making sure your data can walk out the door in plain SQL that any MySQL-compatible server can load. mysqldump already does the heavy lifting, you just need to ask for the right things.
mysqldump --single-transaction --routines -u root -p mydb > mydb.sql
--single-transaction dumps everything inside one transaction so you get a consistent snapshot, but only for storage engines that support multiversioning, which in practice means InnoDB. MyISAM tables don’t get that guarantee. --routines adds stored functions and procedures, which mysqldump leaves out unless you ask. Triggers are already included by default.
A dump you’ve never restored is a hope, not a backup. Every so often, load one into a scratch database (or a MariaDB test box, which doubles as your compatibility check) and make sure the app actually runs against it.
Then look at your own SQL. Most small PHP apps are fine, but it’s worth knowing where you lean on MySQL-only behavior so it lives in one place rather than being sprinkled across fifty files. If you ever want to leave the MySQL family entirely, mysqldump has a --compatible option with modes like ansi and postgresql. It changes how the dump is written, but I wouldn’t expect it to hand you a file PostgreSQL swallows without some cleanup.
The takeaway
For a small LAMP site, the Oracle news is a reason to check your backups, not to migrate. Keep dumping with the right flags, restore one now and then, and put MariaDB on your test box so that if MySQL’s direction ever stops suiting you, switching is a Tuesday afternoon instead of a crisis.