ubuntuusers.de

MariaDB

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

./MariaDB_Logo.png MariaDB ist eine Abspaltung (Fork) von MySQL. Diese wurde entwickelt, nachdem Oracle Sun Microsystems im Jahre 2010 übernommen hatte. MariaDB ist größtenteils kompatibel mit MySQL und kann MySQL meist ohne Probleme ersetzen (API-kompatibel). Es werden die Prozessorarchitekturen x86 und AMD64 unterstützt.

Unterschiede zwischen MySQL und MariaDB:

Installation

Hinweis:

Man kann nicht gleichzeitig MariaDB und MySQL installiert haben, es sei denn, man installiert die Datenbank manuell. Wer es ausprobieren möchte, sollte sich MariaDB coexist with MySQL 🇬🇧 ansehen. Es ist allerdings anzumerken, dass es nicht zu empfehlen ist, diese Konstellation produktiv einzusetzen, da sie ungetestet ist.

MariaDB ist in der Standard-Version (ohne Galera-Cluster]) seit Ubuntu 14.04 in den offiziellen Paketquellen enthalten.

Einzelinstallation

Installation ohne Interaktionen mit anderen MariaDB-Installationen:

  • mariadb-server (universe)

Paketliste zum Kopieren:

sudo apt-get install mariadb-server 

Oder mit apturl installieren, Link: apt://mariadb-server

Konfiguration

Root-Passwort setzen

Bei der Installation wird kein Root-Passwort vergeben und man kann sich einfach mit der Konsoleneingabe

sudo mysql -u root 

als root einloggen (statt mysql funktioniert auch mariadb). Ohne Root-Passwort kann man sich aber nur lokal oder per SSH-Shell auf das DBMS aufschalten. Sinnvoll ist es daher, ein Root-Passwort vorzugeben. Dazu meldet man sich lokal oder per SSH-Shell als root an dem DBMS an und setzt dann ein Passwort:

sudo mysql -u root
MariaDB [(none)]> update mysql.user set password=password('geheim') where user='root';
MariaDB [(none)]> flush privileges; 

In einigen Konstellationen ist es erforderlich, ein Login-Plugin von MariaDB zu entfernen, damit die Anmeldung tatsächlich funktioniert. Sollte die Meldung

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

trotz Setzen eines Passworts erscheinen, so ist zumeist ein unix-socket-Plugin aktiv, das deaktiviert werden muss.

MariaDB [(none)]> use mysql
MariaDB [mysql]> SELECT user, plugin FROM user;
+------+-------------+
| user | plugin      |
+------+-------------+
| root | unix_socket |
+------+-------------+

Passwortloses Arbeiten

Um SQL-Befehle auszuführen, ohne sich jedes Mal bei MariaDB anmelden zu müssen, kann man im Homeverzeichnis die Datei ~/.my.cnf mit folgenden Inhalt anlegen:

[client]
host     = localhost
user     = BENUTZERNAME
password = PASSWORT
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = BENUTZERNAME
password = PASSWORT
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

Danach sollte man noch die Zugriffsrechte auf den Benutzer beschränken:

chmod 600 ~/.my.cnf 

Remote-Zugriffe erlauben

Standardmäßig erlaubt das DBMS nur lokale Zugriffe. Möchte man auch von anderen Rechnern im Netzwerk darauf zugreifen, dann muss man die Datei /etc/mysql/mariadb.conf.d/50-server.cnf mit Root-Rechten [4][7] bearbeiten. Hier ist anstelle von

bind-address = 127.0.0.1

die lokale Adresse des Servers eingetragen werden; z.B.:

bind-address = 192.168.0.89

Um auf allen (zukünftigen) IP-Adresses zu lauschen, kann die Adresse 0.0.0.0 eingetragen werden. _Achtung:_ Dies sollte nur in vertrauenswürdigen Netzwerk(segmenten) gemacht werden, nachdem ein sicheres Passwort eingerichtet wurde.

bind-address = 0.0.0.0

Danach muss der Dienst noch neu gestartet werden:

sudo service mariadb restart 

Nun kann das DBMS über das Netzwerk angesprochen und z.B. das Web-Tool phpMyAdmin genutzt werden.

Ändern des Datenbank-Verzeichnisses

Das Standardverzeichnis für Datenbanken ist /var/lib/mysql. Möchte man dieses abändern, sind die folgenden Schritte notwendig.

Zuerst muss die Datei /etc/mysql/my.cnf mit einem Editor mit Root-Rechten [4][7] geöffnet werden. Dort sucht man die Zeile datadir und ändert hier den Wert auf das neue Verzeichnis, in dem MariaDB die Datenbank-Dateien ablegen soll.

Anschließend müssen die Systemdatenbanken, welche bei der Installation immer automatisch angelegt werden, vom Verzeichnis /var/lib/mysql in das neue Datenbankverzeichnis kopiert werden. Dabei ist zu beachten, dass Eigentümer und Gruppe der Dateien nicht verändert werden.

Beim Wechsel von MySQL ist zusätzlich die Anpassung von /etc/apparmor.d/usr.sbin.mysqld erforderlich, da AppArmor den Zugriff auf andere Verzeichnisse unterbindet. Siehe hierfür den Artikel von MySQL (Abschnitt „Datenpfad“) im Wiki.

Zu beachten ist, dass per Voreinstellung die Datenbank nicht in den Verzeichnissen /home, /root und /run/user angelegt werden kann. Ist dies gewünscht, muss dieses in der systemd Unit, die MariaDB startet, explizit erlaubt werden. Das Vorgehen ist in der Knowledgebase von MariaDB 🇬🇧 beschrieben.

Nutzung

MariaDB kann man für die verschiedensten Dinge gebrauchen.

  • Als Backend für diverse Webanwendungen

  • Um Benutzerdatenbanken zu verwalten

  • Abgleich von Datenmengen

Einen Zugriff auf die Datenbanken kann man mit fast jeder Programmiersprache realisieren. Oftmals gibt es schon vorgefertigte Lösungen. Dank SQL ist das Hantieren mit den Daten leicht und bequem.

Diese Revision wurde am 19. April 2020 15:58 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Datenbank, Programmierung, Internet, Server, Netzwerk, Sicherheit