Replace MySQL with MariaDB
MariaDB, a community developed fork of MySQL, will be the default implementation of MySQL in Fedora 19.
- Targeted release: Fedora 19
- Last updated: 2013-01-10
- Percentage of completion: 60%
MariaDB is a drop-in replacement for MySQL (fork), that preserves API/ABI compatibility with MySQL and adds some new features. Recent changes in MySQL development made by Oracle indicate moving MySQL project to be more closed (e.g. CVE fixes or new regression tests are not publish any more).
MariaDB has active community with true open-source attitude instead. We would like to replace MySQL with MariaDB in early development cycle for Fedora 19. MySQL will be packaged in parallel at least for one release, but MariaDB will be the default.
Benefit to Fedora
Fedora will have true open-source MySQL implementation and won't depend on what Oracle decides to do with MySQL in the future. Compared to MySQL, MariaDB is faster in some cases, it includes some new engines and features, the existing engines and features are enhanced and still compatible.
MariaDB is binary compatible with MySQL of the same minor version, so we don't need to change anything in packages depending on libmysqlclient.so.
However, libmysqld.so has changed soname, because we had to create this library manually before, while MariaDB supports it now. As a consequence, packages depending on libmysqld.so (this file is included in mysql-embedded package) will have to be rebuilt (currently only amarok).
Admins shouldn't notice any change.
How To Test
We need to test switch MySQL -> MariaDB on some large production databases. We will have some larger database and MySQL will be running. At this point updating to MariaDB will be done and should process cleanly. After RPM update, database will be checked from database POV and users POV. Dump of the database should be the same and users shouldn't notice any change. We will need to test also connectors and applications using mysql client library.
- There are no end-user visible changes, except the database being faster and more reliable.
- Packages structure and their contents are similar to MySQL and the changes are usually just some new files.
- Dependencies are unchanged from MySQL.
- Switching back to MySQL if necessary is quite easy. Proper setting of Provides/Obsoletes should be enough to do so.
Main differences between MariaDB and MySQL are listed in https://kb.askmonty.org/en/mariadb-versus-mysql-features/
Compatibility between MariaDB and MySQL is discussed in https://kb.askmonty.org/en/mariadb-versus-mysql-compatibility/
Package Review is available in https://bugzilla.redhat.com/show_bug.cgi?id=875150
Some related discussions took place on fedora-devel-list: http://lists.fedoraproject.org/pipermail/devel/2012-December/175269.html
We need to note this change in release notes.