So installierst und konfigurierst du einen MariaDB-Datenbankserver auf Ubuntu Linux. Außerdem richten wir den Zugang für HeidiSQL ein.
In diesem Teil komplettiere ich das Webserver-Projekt um einen MariaDB-Datenbankserver. Wir installieren MariaDB, konfigurieren, legen einen neuen Benutzer für MariaDB an und richten den externen Zugang für HeidiSQL ein.
Dieser Beitrag baut auf Teil 2 – Installation Apache2 Webserver auf.
Warum MariaDB und nicht MySQL?
MariaDB ist ein relationales Datenbanksystem und wurde als Open-Source-Fork von MySQL entwickelt, nachdem Oracle MySQL gekauft hatte. MariaDB ist vollständig kompatibel mit MySQL – alle MySQL-Programme (HeidiSQL, PHPMyAdmin, PHP-Code) funktionieren ohne Änderungen. MariaDB gilt als schneller, offener und Community-freundlicher als MySQL.
Datenbanken sind das Rückgrat moderner Webanwendungen: WordPress speichert Beiträge und Benutzer in MariaDB, Shopsysteme speichern Produkte und Bestellungen, und Web-Apps aller Art benötigen eine Datenbank für persistente Datenhaltung.
MariaDB installieren
Auch MariaDB finden wir im Repository von Ubuntu, so dass wir die Installation mit ein paar Befehlen bewerkstelligen können. Dazu geben wir nachfolgenden Befehl in das Terminal ein.
sudo apt install -y mariadb-server mariadb-client
Folgende Pakete werden damit installiert:
| Befehl / Option | Bedeutung |
| mariadb-server | Der eigentliche Datenbankserver-Daemon. Nimmt Verbindungen an und bearbeitet SQL-Abfragen. |
| mariadb-client | Kommandozeilen-Client zum Verbinden mit dem Datenbankserver. Befehl: mysql -u root -p |
MariaDB Installation absichern:
Nach der Installation ist MariaDB mit unsicheren Standardeinstellungen konfiguriert: anonyme Benutzer, kein Root-Passwort, eine Test-Datenbank. Das Sicherheitsskript behebt diese Schwachstellen. Darum führen wir einmal das Sicherheitsskript mit nachfolgendem Befehl aus und beantworten die Fragen.
sudo mysql_secure_installation
Das Skript stellt interaktiv folgende Fragen – hier die empfohlenen Antworten:
| Befehl / Option | Bedeutung |
| Enter current password for root: | Einfach Enter drücken. Der Benutzer Root hat noch kein Passwort. |
| Switch to unix_socket authentication? [Y/n] | Y eingeben. Die Root-Anmeldung wird an den Linux-Benutzer ‚root‘ gebunden – sicherer als Passwort. |
| Change the root password? [Y/n] | Y – ein starkes Passwort setzen und gut merken! |
| Remove anonymous users? [Y/n] | Y – anonyme Benutzer ohne Passwort entfernen. |
| Disallow root login remotely? [Y/n] | Y – Root darf sich nur lokal anmelden, nie per Netzwerk. |
| Remove test database and access to it? [Y/n] | Y – Test-Datenbank entfernen. |
| Reload privilege tables now? [Y/n] | Y – Änderungen sofort wirksam machen. |
Warum unix_socket-Authentifizierung?
Mit unix_socket meldet sich root automatisch an, wenn der Linux-Benutzer ‚root‘ angemeldet ist.
Das bedeutet: 'sudo mysql‘ funktioniert ohne Passwort, ein Angreifer ohne root-Rechte kann sich aber trotzdem nicht einloggen. Für PHP‑Verbindungen werden eigene Benutzer angelegt.
In MariaDB einloggen und Benutzer anlegen
Jetzt loggen wir uns das erste Mal in MariaDB ein und legen uns einen eigenen Benutzer an. Wir benötigen einen Benutzer für die Webprojekte, der auch gleichzeitig Zugriff von außerhalb von localhost hat.
Wenn du vorhin bei der Einrichtung von MariaDB die Frage mit Unix-Socketauthentifikation mit Y bestätigt hast, kannst du auch das -p weglassen, da der MariaDB Nutzer root mit dem Systembenutzer von deinem Ubuntu-Server verknüpft ist.
sudo mysql -u root -p
Jetzt befinden wir uns in dem Kommandozeilen-Client von MariaDB bzw. MySQL. Hierüber können wir jetzt SQL-Anweisungen ausführen.
Mit den folgenden Anweisungen legen wir einen neuen Benutzer an, geben ihm alle Rechte und laden alle Benutzerrechte neu, damit die Änderungen sofort wirksam werden.
Die beiden Platzhalter NEUER_USER und PASSWORT musst du natürlich durch deinen gewünschten Benutzernamen und dein Passwort ersetzen.
create user 'NEUER_USER'@'%' identified by 'PASSWORT';
grant all privileges on *.* to 'NEUER_USER'@'%' with grant option;
flush privileges;
Die MySQL-Befehle haben folgende Bedeutung:
| Befehl / Option | Bedeutung |
| CREATE USER | Legt einen neuen Benutzer für MariaDB an. |
| ‚user'@'localhost‘ | Benutzername@Hostname. ’localhost‘ beschränkt den Login auf den Server selbst. ‚%‘ würde alle Hosts erlauben. |
| IDENTIFIED BY | Setzt das Passwort für den Datenbankbenutzer. Niemals dasselbe Passwort wie für den Linux-Benutzer! |
| GRANT ALL PRIVILEGES ON *.* | Gibt alle Rechte (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP etc.) auf alle Tabellen für alle Datenbanken (*.*). |
| FLUSH PRIVILEGES | Lädt die Berechtigungstabellen neu. Nötig, damit GRANT/REVOKE‑Änderungen sofort wirken. |
Als Letztes müssen wir den MariaDB-Clienten wieder verlassen. Dazu geben wir einfach „exit“ ein.
exit
Zum Schluss starten wir den MariaDB-Dienst einmal neu.
sudo systemctl restart mysql.service
MariaDB für externe Verbindung konfigurieren
Um über einen externen grafischen Datenbank-Clienten wie z. B. HeidiSQL auf die Datenbank zugreifen zu können, müssen wir MariaDB für externe Netzwerkverbindungen öffnen.
Standardmäßig hört MariaDB nur auf 127.0.0.1 (localhost). Für HeidiSQL-Zugriff vom einem Windows-PC muss das geändert werden. Dazu rufen wir die Konfigurationsdatei von MariaDB mit dem Editor Nano.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Hier suchst du im Abschnitt [mysqld] nach dem Eintrag „bind-address = 127.0.0.1“ und änderst die Adresse auf 0.0.0.0 ab.
[mysqld]
# Standard: Nur lokale Verbindungen erlaubt
# bind-address = 127.0.0.1
# Geaendert: Verbindungen von allen Interfaces erlauben
bind-address = 0.0.0.0
Zum Schluss den MariaDB-Dienst neu starten, damit die geänderte Konfiguration wirksam wird.
sudo systemctl restart mysql.service
Was ist HeidiSQL?
HeidiSQL ist ein kostenloser, grafischer Datenbank-Client für Windows/Mac/Linux. Er ermöglicht das komfortable Verwalten von Datenbanken, Tabellen und Daten ohne SQL-Kenntnisse – ähnlich wie phpMyAdmin, aber als native Windows-Anwendung und oft komfortabler. Hier kannst du dir HeidiSQL herunterladen.
Jetzt testen wir einmal mit HeidiSQL, ob der Zugriff funktioniert und wir eine Verbindung zu MariaDB aufbauen können.

Abschluss MariaDB
Damit sind wir jetzt am Ende der Anleitung für den Teil „Installation des MariaDB“. Wir haben den Datenbankserver MariaDB installiert, konfiguriert und für den Zugang von HeidiSQL geöffnet. Im nächsten Teil geht es um den kniffligsten Teil des Projektes, die Verwendung mehrerer PHP- Versionen.
Weiter geht's mit Teil 4 – Installation mehrere PHP-Versionen.


0 Kommentare