MariaDB statt MySQL installieren

Im Gegensatz zu den meisten anderen aktuellen Distributionen setzt Ubuntu standardmäßig (noch) auf MySQL. Mark Shuttleworth begründet dies mit einer in letzter Zeit verbesserten Zusammenarbeit mit Oracle. Persönlich glaube ich aber, dass MariaDB zumindest unter Linux mehr Zukunft hat. Glücklicherweise ist die Installation von MariaDB unter Ubuntu 14.04 gänzlich unkompliziert.

Grundsätzlich haben Sie die Wahl zwischen zwei Installationsvarianten:

  • Die Verwendung der standardmäßig zur Verfügung gestellten Pakete aus der universe-Paketquelle (nur MariaDB 5.5).

  • Die Verwendung eines eigenen MariaDB-Repositories (momentan MariaDB 5.5, 10.0 oder 10.1 beta).

Installation der MariaDB-Pakete aus der universe-Paketquelle

Es könnte nicht einfacher sein:

sudo apt-get update
sudo apt-get install mariadb-client mariadb-server

Während der Installation müssen Sie das Passwort für den MySQL-root-Benutzer angeben.

Gegenwärtig (Mitte September 2014) erhalten Sie auf diese Weise die aktuelle MariaDB-Version 5.5.39. Das Paket wird in der universe-Paketquelle also aktiv gewartet, wenn auch nicht mit jedem Versionssprung. Version 5.5.38 wurde in der universe-Paketquelle z.B. übersprungen, siehe das changelog.)

Die große Frage ist: Wie werden die MariaDB-Pakete in der Zukunft gewartet? Im Server-Bereich wird Ubuntu 14.04 die nächsten fünf Jahre im Einsatz sein. Die LTS-Update-Garantie bei Sicherheitsproblemen gilt aber nur für main- und restricted-Pakete, nicht für universe und multiverse. Ein universe-Paket als Basis für den mehrjährigen Einsatz von MariaDB auf einem Server — ich hätte da Bauchweh.

Installation der MariaDB-Pakete aus einer eigenen Paketquelle

Auf der wunderbar klar strukturierten Seite Setting up MariaDB Repositories können Sie zuerst eine Ubuntu-Version, dann eine MariaDB-Version und schließlich einen Mirror auswählen. Anschließend zeigt Ihnen die Seite an, welche Kommandos Sie ausführen müssen, um eine geeignete Paketquelle für MariaDB auf Ihrem Ubuntu-System einzurichten und MariaDB anschließend zu installieren. Die folgenden Kommandos gelten für MariaDB 5.5 und den Mirror hosteurope.de.

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://ftp.hosteurope.de/mirror/mariadb.org/repo/5.5/ubuntu trusty main'
sudo apt-get update
sudo apt-get install mariadb-client mariadb-server 

Die Verwendung einer eigenen MariaDB-Paketquelle hat im Vergleich zu den universe-Paketen Vor- und Nachteile:

  • Vorteil: Sie haben die Wahl zwischen den Hauptversionsnummern 5.5, 10.0 und 10.1. Persönlich ist mir momentan 5.5 am liebsten. Das ist die Version, die auch Red Hat verwendet — da ist zu hoffen, dass diese Version längerfristig gut gewartet wird.

  • Vor- und Nachteil: Sie erhalten die gerade aktuellsten Update immer sofort. Aus Sicherheitsgründen ist das gut, aber natürlich birgt jedes Minor-Update natürlich auch das Risiko, dass etwas schief geht.

Tipp: Wählen Sie als Mirror einen etablierten Dienst, z.B. einen großen Hosting-Anbieter oder den FTP-Server einer Universität!

utf8-Zeichensatz in den Tabellen verwenden

Egal, ob Sie MariaDB 5.5 nun als universe-Paket installieren oder eine eigene Paketquelle verwenden — als Standardzeichensatz wird unbegreiflicherweise noch immer latin1 verwendet, als Sortierordnung schwedisch! Wenn Sie also nicht aufpassen und einfach

CREATE DATABASE d1;
USE d1;
CREATE TABLE t1 (id SERIAL, txt VARCHAR(100));

ausführen, dann können in der Textspalte in t1 nur latin1-Zeichen gespeichert werden. ORDER BY sortiert ÄÖÜ nach Z!

Damit für alle neuen Datenbanken utf8 als Defaultzeichensatz verwendet wird, führen Sie die folgenden Änderungen in /etc/mysql/my.cnf durch:

[client]
...
default-character-set=utf8

[mysqld]
...
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

[mysqldump]
...
default-character-set=utf8

[mysql]
...
default-character-set=utf8

Damit die Einstellungen wirksam werden, müssen Sie den MariaDB-Server neu starten:

service mariadb restart

Hintergrund-Informationen: Setting Character Sets and Collations

Hinweis Die Anweisung init-connect=... stellt sicher, dass nach dem Verbindungsaufbau tatsächlich im Zeichensatz UTF-8 kommuniziert wird. Sie kann aber unter Umständen Kompatibilitätsprobleme mit älteren Programmen verursachen. Wenn deutsche Sonderzeichen plötzlich nicht mehr korrekt angezeigt werden, entfernen Sie die Anweisung aus my.cnf.