Linux systems consultingand support services

10 reasons to migrate to MariaDB (if still using MySQL)

The original MySQL was created by a Finnish/Swedish company, MySQL AB, founded by David Axmark, Allan Larsson and Michael “Monty” Widenius. The first version of MySQL appeared in 1995. It was initially created for personal usage but in a few years evolved into a enterprise grade database and it became the worlds most popular open source relational database software – and it still is. In January 2008, Sun Microsystems bought MySQL for $1 billion. Soon after, Oracle acquired all of Sun Microsystems after getting approval from the European Commission in late 2009, which initially stopped the transaction due to concerns that such a merger would harm the database markets as MySQL was the main competitor of Oracle’s database product.

Out of distrust in Oracle stewardship of MySQL, the original developers of MySQL forked it and created MariaDB in 2009. As time passed, MariaDB replaced MySQL in many places and everybody reading this article should consider it too.

At Seravo, we migrated all of our own databases from MySQL to MariaDB in late 2013 and during 2014 we also migrated our customer’s systems to use MariaDB.

We recommend everybody still using MySQL in 2015 to migrate to MariaDB for the following reasons:

1) MariaDB development is more open and vibrant

Unlike many other open source projects Oracle inherited from the Sun acquisition, Oracle does indeed still develop MySQL and to our knowledge they have even hired new competent developers after most of the original developers resigned. The next major release MySQL 5.7 will have significant improvement over MySQL 5.6. However, the commit log of 5.7 shows that all contributors are @oracle.com. Most commit messages reference issue numbers that are only in an internal tracker at Oracle and thus not open for public discussion. There are no new commits in the latest 3 months because Oracle seems to update the public code repository only in big batches post-release. This does not strike as a development effort that would benefit from the public feedback loop and the Linus law of “given enough eyes all bugs are shallow”.

Because of the big momentum MySQL has had, there is still a lot of community around it but there is a clear trend that most new activities in the open source world revolve around MariaDB.

As Linux distributions play a major role in software delivery, testing and quality assurance, the fact that the both RHEL 7 and SLES 12 ship with MariaDB instead of MySQL increases the likelihood that MariaDB is going to be better maintained both upstream and downstream in years to come.

2) Quicker and more transparent security releases

Oracle only has a policy to make security releases (and related announcements) every three months for all of their products. MySQL however has a new release every two months. Sometimes this leads situations where security upgrades and security information are not synced. Also the MySQL release notes do not list all the CVE identifiers the releases fix. Many have complained that the actual security announcements are very vague and do not identify the actual issues or the commits that fixed them, which makes it impossible to do backporting and patch management for those administrators that cannot always simply upgrade to the latest Oracle MySQL release.

MariaDB however follows good industry standards by releasing security announcements and upgrades at the same time and handling the pre-secrecy and post-transparency in a proper way. MariaDB release notes also list the CVE identifiers pedantically and they even seem to update the release notes afterwards if new CVE identifiers are created about issues that MariaDB has already released fixes for.

3) More cutting edge features

MySQL 5.7 is looking promising and it has some cool new features like GIS support. However, MariaDB has had much more new features in recent years and they are released earlier, and in most cases those features seem to go through a more extensive review before release. Therefore we at Seravo trust MariaDB to deliver us the best features and least bugs.

For example GIS features were introduced already in the 5.3 series of MariaDB, which makes storing coordinates and querying location data easy. Dynamic column support (MariaDB only) is interesting because it allows for NoSQL type functionality, and thus one single database interface can provide both SQL and “not only SQL” for diverse software project needs.

4) More storage engines

MariaDB in particular excels as the amount of storage engines and other plugins it ships with: Connect and Cassandra storage engines for NoSQL backends or rolling migrations from legacy databases, Spider for sharding, TokuDB with fractal indexes etc. These plugins are available for MySQL as well via 3rd parties, but in MariaDB they are part of the official release, which guarantees that the plugins are well integrated and easy to use.

5) Better performance

MariaDB claims it has a much improved query optimizer and many other performance related improvements. Certain benchmarks show that MariaDB is radically faster than MySQL. Benchmarks don’t however always directly translate to real life situations. For example when we at Seravo migrated from MySQL to MariaDB, we saw moderate 3-5 % performance improvements in our real-life scenarios. Still, when it all adds up, 5% is relevant in particular for web server backends, where every millisecond counts. Faster is always better, even if it is just a bit faster.

6) Galera active-active master clustering

Galera is a new kind of clustering engine which, unlike traditional MySQL master-slave replication, provides master-master replication and thus enables a new kind of scalability architecture for MySQL/MariaDB. Despite that Galera development already started in 2007, it has never been a part of the official Oracle MySQL version while both Percona and MariaDB flavors have shipped a Galera based cluster version for years.

Galera support will be even better in MariaDB 10.1, as it will be included in the main version (and not anymore in a separate cluster version) and enabling Galera clustering is just a matter of activating the correct configuration parameters in any MariaDB server installation.

7) Oracle stewardship is uncertain

Many people have expressed distrust in Oracle’s true motivations and interest in keeping MySQL alive. As explained in point 1, Oracle wasn’t initially allowed to acquire Sun Microsystems, which owned MySQL, due to the EU competition legislation. MySQL was the biggest competitor to Oracle’s original database. The European Commission however approved the deal after Oracle published an official promise to keep MySQL alive and competitive. That document included an expiry date, December 14th 2014, which has now passed. One can only guess what the Oracle upper management has in mind for the future of MySQL.

Some may argue that in recent years, Oracle has already weakened MySQL in subtle ways. Maybe, but in Oracle’s defense, it should be noted that MySQL activities have been much more successful than for example OpenOffice or Hudson, which both very quickly forked into LibreOffice and Jenkins with such a momentum, that the original projects dried up in less than a year.

However, given the choice between Oracle and a true open source project, the decision should not be hard for anybody who understands the value of software freedom and the evolutive benefits that stem from global collaborative development.

The last big distribution to get MariaDB was Debian (and based on it, Ubuntu). The “intent to package” bug in Debian was already filed in 2010 but it wasn’t until December 2013 that the bug finally got closed. This was thanks to Seravo staff who took care of packaging MariaDB 5.5 for Debian, from where it also got into Ubuntu 14.04. Later we have also packaged MariaDB 10.0, which will be included in the next Debian and Ubuntu releases in the first half of 2015.

9) Compatible and easy to migrate

MariaDB 5.5 is a complete drop-in-replacement for MySQL 5.5. Migrating to MariaDB is as easy as running apt-get install mariadb-server or the equivalent command on your chosen Linux flavor (which, in 2015, is likely to include MariaDB in the official repositories).

Despite the migration being easy, we still recommend that database admins undertake their own testing and always back up their databases, just to be safe.

10) Migration might become difficult after 2015

In versions MariaDB 10.0 and MySQL 5.6 the forks have already started to diverge somewhat but most likely users can still just upgrade from 5.6 to 10.0 without problems. The compatibility between 5.7 and 10.1 in the future is unknown, so the ideal time to migrate is now while it is still hassle-free. If binary incompatibilities arise in the future, database admins can always still migrate their data by dumping it and importing it in the new database.

With the above in mind, MariaDB is clearly our preferred option.

One of our customers once expressed their interest in migrating from MySQL to MariaDB and wanted us to confirm whether MariaDB is bug-free. Tragically we had to disappoint them with a negative answer. However we did assure them that the most important things are done correctly in MariaDB making it certainly worth migrating to.

After reading every word of this article i only can conclude that you are a VERY frustrated probably past code backer which is against the real world and only happy with open source, open company, community driven companies who put all their company notes onto the surface to get bashed out in the open. One who cannot live in a world without these ‘standards’. Thats fine, but those are not really reasons for migrating to a product which is new and unknown for us.

I have read the article with interest and open to finding all those (10) good reasons to migrate, but i have found none. I only found maybe-in-the-future reasons which are all speculative, and reasons like ‘they are releasing one month later than the previous management so the product sucks’. No the product does not suck, the product works perfect. But it is you that cannot accept another way of how things are handled. No offense, but that does not make a product bad or dead.

@Tim: if you like MySQL better, then go ahead and continue using it, I am sure you have some motivation for that but reading your argumentation you don’t reference anything specific that would be better in Oracle MySQL than in MariaDB.

Actually Tim with his “negative” comments he brings some truth about the status of MySQL and MariaDB. For most companies, if the code is available or not, or how a software is internally or externally developed is not a decisive factor in terms of whenever is worth using that software. While MariaDB maybe more open, with more OSS developers working for it, still MySQL get the job done, and get improved. If the time when MySQL development and free releases are completely stopped, then people will go for an alternative. But right now is.. Don’t fix what is not broken.

We know that MySQL gets the job done but you have to understand the open source mentality. Oracle is one of the biggest db company and a direct MySQL competitor. In my understanding, I don’t think that MySQL will improve that much (and if it does it will do the Oracle way) for the simple reason that the developers that made it what it is now resign to work on a brand new project, MariaDB. I think if big companies like Google, Wikipedia, booking.com migrated their db to MariaBD, there is a reason to do to.

How about features that simply don’t work properly in MySQL and might never work: subqueries, server-side prepared statements, etc. These and many other issues have been fixed in MariaDB.

So I guess the choice is yours: stick with the product whose failings you have become comfortable with, or switch to a product that doesn’t have those failings.

Oracle has no reason to significantly improve MySQL: they would rather sell Oracle DB licenses instead. MariaDB wants to build a great product, so they are doing it.

I predict that 10 years from now, MySQL will be the database that most people just install on Windows desktops because they have heard of it. Everyone else will have moved to MariaDB and will be happier for it.

@Sudha: just backup your old database and then run ‘apt-get install mariadb-server’ or an equivalent command on your chosen distribution. We have not yet bumped into situations where migration from 5.6->10.0 would not be possible automatically, but theoretically the projects have started to diverge, so somebody might bump into problems.

Another even safer way would be to run mysqldump to get a dump of your data, including mysql database and users table. Then purge MySQL away and install MariaDB, and import the dump file into MariaDB and you should end up with new server that has all the old data.

I think you missed the most important reason: MySQL was started and written by Michael “Monty” Widenius. He was basically booted from his own project by corporate bullies, and couldn’t continue using the name MySQL (Which is named after his daughter.) Hence, he continued the project under a new name. Named after his other daughter. It was always, and still is, his brainchild, arguably MariaDB is more MySQL, than MySQL is.

Most important part of story. When you live in Iran Oracle ban you for download the mysql or other products. MariaDB is community base and no one can to ban you. So MariaDB is my favorite and i feel freedom when use it.

I am really struggling on my decision now,shall i update from MYSQL 5.6.3 to MariaDB,the bad thing is After you upgrade MySQL/MariaDB, there is no supported way to downgrade to the previous version.I read a lot of comments here,still can not finalized it.

I want add something,have successfully update SQL 5.6.3 to MariadDB 10.1,there is no problem found,so i am sure there is nothing to worry about it when you have decided to do this,thanks for all these comments.

Can anyone please let me know the steps to upgrade from MySQL 5.5 to Mariadb 10.0 in WHM ,do i just need to follow those 7 steps shown in WHM ,tick infront of all warning in each step & choose “Unattended Upgrade” as the option to keep my old settings ? [never done it before] [have backed up the database of my websites] Thanks

What does WHM stand for? MariaDB 10.0 is quite well backwards compatible with MySQL 5.5. What distribution do you use? You should be able to run just ‘apt-get install mariadb-server’ or ‘yum install mariadb-server’. Just to be safe, back up your old database first with mysqldump.

The process seems to be straightforward , but I have never done this upgrading process before so wanted advise on it [regarding the what-to-do steps in my above reply] if i need to take any more precautions , if after upgrading it damages cpanel/WHM components [sorry i m newbie & starting to learn all these stuffs :) ]

PS – i am a newbie in using putty commands so was thinking of upgrading through the WHM feature .

To the nay-sayers I have the following: – Don’t think that insisting on open-source is just some hippy coderism – the visibility of open source means no secret bugs that Oracle knows about but won’t be bothered patching until the next quarterly cycle; – If MariaDB is acquired down the track it won’t necessarily counter the preceding arguments: the problem with Oracle owning MySQL is that the new owner is deeply conflicted not that they are a big company; – Oracle has demonstrated repeatedly that they have no interest in maintaining Sun’s portfolio of developer-focused tools and services – just look at Glassfish, a product to which I devoted months of development only to have Oracle kill it so we would all “upgrade” to WebLogic. If Glassfish is any indicator MySQL is doomed. Serious bugs filed 2 years ago still unfixed despite patches being submitted and no way to get your code accepted upstream. These are very good reasons to migrate away from MySQL. Oracles actions (or lack of) on this front speak much more loudly than their promises.

This comment is by far the best one I have read. It accurately explains, with an obvious example, why Oracle should not be trusted to manage MySQL. My reality is that if MySQL becomes a problem I will need to switch, if MariaDB becomes a problem I will need to switch.

Switching now to means that down the road I may, or may not, need to switch. However Oracle’s track record suggests that not switching almost guarantees that I will have to switch later. I’d rather have the possibility of not having to deal with political bugs than the almost certainty of dealing with them.

MySQL vs MariaDB. I just see this as the Open Office vs Libre Office game that Open Source & Oracle are playing with each other. Oracle really has 3 DB products now, Oracle, My SQL and since MariaDB is based off MySQL, it might as well be Oracle’s 3rd database. I mean Oracle’s MySQL release determines the next MariaDB and stable MariaDB lags. 2017, SQL Server moves to Linux. That’s going to have an audience/target market of IT migration because it most likely will be virtually 99.99999% compatible with Windows versions ?

Except MariaDB was forked years ago and is not coupled to MySQL’s release process in any way. Oracle has nothing at all to do with it. Nice-to-haves from MySQL are ported – the same is not true for fixes and new features rooted in MariaDB. Look at Java and Glassfish – that’s what you have to look forward to in MySQL from Oracle. As far as MSSQL is concerned … I have spent a significant portion of the last decade moving fed-up customers off it onto more stable, faster and less encumbered alternatives. Don’t expect a rush to MSSQL on Linux. Too little too late from Microsoft there.

In mysql we easily use workbench to create dumps. Which tool do you have in Mariadb? Be aware that console interface and using command line stuff is hard for non programmers. I will wait till you make such a simple tool. If you’ve not managed to create one, the Mariadb is still young and Mysql is far ahead of you.

Consider using the terminal. It is often a one-liner and could be finished before you’ve even found the icon for Workbench, let alone connected to the DB. I’ll grant you, using a WYSIWYG tool is often more convenient, but for something as basic as dumping DDL/DML the command line is probably far less hassle.

Funny to read that people are negative about mssql. I just started using mysql last few weeks and came across several features I use on mssql that are not available on mysql or have a lesser counterpart. I m currently trying to overcome a serious performance issue that works fine on mssql. Also Workbench is very instable especially when using the execution plan tab.

If you’ve been in the business for long you shouldn’t be at all surprised. MSSQL has a long and undistinguished history of terrible performance, scalability and interoperability. Any issues you are having with MySQL should be directed to Oracle. MariaDB is not MySQL despite maintaining a large degree of compatibility, so MySQL Workbench may or may not provide stable access to MariaDB – so far it continues to work for me but YMMV. If you have a performance issue with MariaDB (or MySQL) don’t think you can apply the solution you used for MSSQL successfully – design your solution for the tools you are using rather than the tool you used to use. If you are having a performance issue with MariaDB, post the details and someone may be able to help you. Not sure if this is the ideal place though.

In response to questions regarding GUI for MariaDB, MariaDB installation comes with a GUI called HeidiSQL. This GUI may not be as feature rich as Workbench but it does a good job of some of the tasks like database dump for example.

I dunno. Look, I’m not a gung-ho type of guy, I’m a businessman at heart. I want something that WORKS, not something where I spent hours and hours to get something running. I want tools that help me out. Is MariaDB the best? I’m not sure, but I do know it all rubs me the wrong way.

Look, I don’t have all of the information, so forgive me, but am I to assume that Monty sold MySQL to Oracle, got paid many, many millions and now is developing a competing product identically based on MySQL? Seems like double-dipping to me and highly unethical. I’m also not a big fan of the name. I never knew originally that “My” was one of his kids. What type of ego-maniac insists on products being named on his family? I thought you were interested in an enterprise level product that involves many, many, people, not just you.

I liked where MySQL was (and maybe is) heading. 5.5 is FAR more improved over 5.1 Prior to 5.5 it was like nobody bothered to test anything. They’d release a new version with fixes to the bugs created in the last release. I remember when “else if” broke in Stored Procedures.

I liked seeing something that worked great on Debian as well as Windows. I liked the evolution of the tools (remember the buggy MySQL Query Browser. Oh god). Now, I’m stuck on 5.5 on Debian. Oh sure, it’s is (or probably WAS) a dropin, but it’ll be completely separate soon and then you have some tools that work on MySQL and others for MariaDB.

I’m sorry, but I don’t like it. I see no evidence that Oracle is doing a bad job nor preparing to NOT make it free, so I just see the separate as an Ego and maybe financially-based thing. How long before MariaDB gets sold to a company too? I don’t get why people blame Oracle for buying it when MySQL could’ve been designed to remain open source forever and NOT SELL.

Kirk, Valid points, to a degree, but it seems like you may have overlooked that Monty sold MySQL to SUN which had a fairly good track record of keeping projects like MySQL the way they were intended. Then Oracle purchased Sun, which was at first blocked by the EU BECAUSE OF THE CONFLICT OF INTEREST between Oracle DB and MySQL. Oracle made promises to keep MySQL free and keep development up to date through the end of 2014.

Monty, like most people in the open source community, knew of Oracle’s track record of abandoning open source properties they acquire so he immediately forked MySQL and created MariaDB. No one in their right mind believes that Oracle would have put much effort into MySQL had Monty not done that and Oracle definitely would not have kept up work on MySQL after 2014. So, if you insist on continuing to use MySQL you STILL OWE MONTY a “thank you” because without his efforts on MariaDB Oracle would have stopped MySQL updates long ago.

Beyond that, MariaDB has performance and stability improvements above and beyond MySQL. The fact that major Linux distributions have switched to including MariaDB instead of MySQL speaks VOLUMES.

As for Monty naming his projects after his children, instead of calling him names you should again be THANKING him for developing a FREE RDBMS. If not for people like him you would have to pay BOAT LOADS of money for MS SQL, Oracle, or some other RDBMS. If you want to create a FREE RDBMS and name it something that you think is appropriate, go ahead, learn how to write code and spend tens of thousands of hours creating one. How much time would you have left to be a “businessman” if you did that?

you seem to care mostly about cost and less about quality. Me too. I have spent very little money for software, and I have no doubt when I compare two products of same quality – the “good” is the “free” one, the other is “bad”.

BUT…

We OWE a big THANK YOU to those who indirectly pay people like Monty. Oracle indirectly supported (through Sun) the past development of MySQL and effectively the future development of MariaDB (actually its customers, but the payment chain includes Oracle).

I work with clients that use both MySQl and MariaDB so I use wizzyweb.com to create the apps as it generates standard PHP PDO code which works with both databases. I have had clients switch from one to the other and apps work unchanged because of PDO code.