Dotdeb is a repository currently targeting Debian and Ubuntu, providing a nice set of packages for LAMP servers.

Recently, MySQL 5.6 was added to the dotdeb repository. On the surface, this is a very harmless addition. MariaDB is a replacement for MySQL and it should be possible for applications designed for MySQL to easily switch to MariaDB. Therefore MariaDB also includes the libraries that applications using MySQL depend upon, such as libmysqlclient18 and mysql-common. The dpkg package manager looks at the MySQL 5.6 packages in dotdeb and assumes that 5.6 is a higher version than 5.5, which results in it removing or replacing libraries during normal apt-get installation and upgrade procedures.

The problems appear in the following scenarios:

  1. apt-get install mariadb-server-5.5 (fresh or over a previous version)
  2. apt-get upgrade (if MariaDB 5.5 is installed)
  3. apt-get dist-upgrade (if MariaDB 5.5 is installed)

Scenario 3, dist-upgrade, is especially nasty because in its attempt to upgrade the libmysqlclient18 and mysql-common packages, dpkg will REMOVE MariaDB.

MySQL 5.5 users are also affected in a similar way although the consequences look to be a bit lighter. Our early tests show for example that dist-upgrade will upgrade MySQL 5.5 to MySQL 5.6, which might come as a surprise. MySQL 5.5 users should therefore double-check how they are affected.

See below for examples of what these problems look like in practice. It is also worth noting that the problems do NOT exist if you are using MariaDB 10.0. With MariaDB 10.0 all the listed scenarios work just fine. MariaDB 10.0 is GA now and therefore a good alternative.

Solution

Fortunately there is a workaround that can be used and has been proven to work. By pinning the MariaDB repository you can override the normal behavior (where the highest version number wins). The process is simple. You only need to add a preferences file (with a .pref extension) for the MariaDB repository under the /etc/apt/preferences.d/ directory. The contents should look similar to the following:

The value of Pin-Priority must be at least 1000. Also note that the Pin: row needs to have the domain name of the repository that you are using for your MariaDB apt sources file entry. In this example the domain is ftp.osuosl.org.

With the preference file in place the packages in the MariaDB repository will be preferred over the similarly named packages in the dotdeb repository and the problematic scenarios listed above will work just fine.

Many thanks to our users who promptly reported the problem on IRC, helped to find the root cause and experimented with the workaround!

Examples of the problematic scenarios

Scenario 1: Fresh installation or installation over a previous version of MariaDB 5.5
Result: Fails

Scenario 2: apt-get upgrade
Result: MariaDB server and client are not upgraded

Scenario 3: apt-get dist-upgrade
Result: mariadb-server and mariadb-client are removed

The MariaDB developers have made several releases in the past week. Rather than post about all of them separately, we decided to combine them into one post. Details for each release are available on their individual Release Notes and Changelog pages.

MariaDB 5.5.36

First up is MariaDB 5.5.36. This is a Stable (GA) release. Apart from general maintenance, bug fixes, and updates, TokuDB is now included in RPM packages for CentOS 6 on x86-64.

Download MariaDB 5.5.36

Release Notes Changelog What is MariaDB 5.5?


MariaDB Galera Cluster 10.0.7

Next is MariaDB Galera Cluster 10.0.7. This is an Alpha release. It is being released now to get it into the hands of any who might want to test it. Do not run Alpha releases on production systems! This version of MariaDB Galera Cluster supports wsrep API v25 which means MariaDB Galera Cluster can be used with either a 25.2.x or 25.3.x Galera wsrep provider. A 25.3.x wsrep provider is included in the MariaDB repositories. And both 25.3.x and 25.2.x wsrep providers are available on the downloads page.

Download MariaDB Galera Cluster 10.0.7

Release Notes Changelog What is MariaDB Galera Cluster?


MariaDB Java Client 1.1.6

The last release in the roundup is MariaDB Java Client 1.1.6. This is a Stable (GA) release. Several bugs were fixed and a new connection parameter, serverTimezone, was added. If set, timezone conversions will occur when storing temporal data with preparedStatement and when reading data using ResultSet. The effect is similar to setting the time_zone session variable. The difference is better cross-platform compatibility (i.e timezone names like “Asia/Omsk” can also be used when the server is on Windows). Also, this option works for both datetime and timestamp datatypes, while the server-side option has no effect on datetime.

Download Java Client 1.1.6

Release Notes Changelog Java Client Overview


Thanks, and enjoy MariaDB!