MariaDB Server Debian 13 installieren

SOP Übersicht und Anhänge

SOP-Metadaten

SOP-Nummer: SOP1010
Priorität: Prio 4
Dauer: 45 Minuten
Status: Aktuell

Download:

Beschreibung der Aufgabe / des Problems

Diese SOP beschreibt die vollständige Einrichtung eines MariaDB Datenbankservers auf Debian 13, der von mehreren Webservern im lokalen Netzwerk genutzt wird.

Die Konfiguration beinhaltet:

  • Systemupdate
  • Installation von Apache
  • Installation von PHP 8.4
  • Installation und Absicherung von MariaDB
  • Installation von phpMyAdmin
  • Firewall-Konfiguration
  • Benutzer- und Datenbankrechte
  • Zugriffsbeschränkung auf definierte Webserver

Die Architektur trennt Webserver und Datenbankserver, um Sicherheit, Skalierbarkeit und Wartbarkeit zu erhöh

Ziel / Endergebnis

Ziel / Endergebnis

Am Ende dieser SOP ist folgendes System eingerichtet:

ServerIPFunktion
MariaDB Server192.168.178.23Datenbankserver
Webserver Nextcloud192.168.178.24Zugriff auf Datenbank
Webserver Website192.168.178.25Zugriff auf Datenbank

Ergebnis:

  • Datenbankbenutzer erstellt
  • MariaDB läuft auf 192.168.178.23
  • Zugriff auf Port 3306 nur für definierte Webserver
  • Firewall aktiv
  • phpMyAdmin installiert
  • Apache + PHP 8.4 eingerichtet

Voraussetzungen

  • Debian 13 Server installiert
  • Root oder sudo Zugriff
  • Netzwerk mit statischen IP-Adressen
  • SSH Zugriff
  • Internetzugang für Paketinstallation

Video-Anleitung

Netzwerkübersicht

Text-Anleitung

ServerIPFunktion
DB Server192.168.178.23MariaDB
Webserver 1192.168.178.24Nextcloud
Webserver 2192.168.178.25Website

1. System aktualisieren

sudo apt update && apt upgrade -y

2 Apache Installieren

apt install apache2 -y

3. PHP 8.4 installieren

apt install -y php8.4 php8.4-cli php8.4-common php8.4-curl php8.4-gd php8.4-intl php8.4-mbstring php8.4-mysql php8.4-opcache php8.4-readline php8.4-xml php8.4-xsl php8.4-zip php8.4-bz2 libapache2-mod-php8.4

Apache neu laden

systemctl reload apache2

PHP Module prüfen

php -m | grep -E 'mysqli|pdo_mysql'

4. MariaDB Server installieren

apt install mariadb-server mariadb-client -y

5 MariaDB absichern

Sicherheitskonfiguration starten:

mariadb-secure-installation

Empfohlene Einstellungen:

Remove anonymous users? y
Disallow root login remotely? y
Remove test database? y
Reload privilege tables now? y

6. MariaDB Netzwerk konfigurieren

Datei öffnen:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Ändern:

bind-address = 192.168.178.23

MariaDB neu starten:

systemctl restart mariadb

Status prüfen:

systemctl status mariadb

7 phpMyAdmin installieren

apt install phpmyadmin -y

Während Installation auswählen:

Webserver: apache2 
dbconfig-common: Yes

Konfiguration aktivieren:

a2enconf phpmyadmin 
systemctl reload apache2

Erklärung:

  • a2 = Apache2
  • en = enable (aktivieren)
  • conf = configuration

8. Firewall installieren

apt install ufw -y

Standardregeln setzen:

ufw default deny incoming
ufw default allow outgoing

9. Firewall konfigurieren

SSH Zugriff erlauben:

ufw allow 22/tcp

Webserver Ports erlauben:

ufw allow 80/tcp
ufw allow 443/tcp

MariaDB Zugriff nur für Webserver:
Nextcloud Server erlauben:

ufw allow from 192.168.178.24 to any port 3306 proto tcp

Website Server erlauben:

ufw allow from 192.168.178.25 to any port 3306 proto tcp

Bedeutung:

  • Zugriff auf Port 3306
  • Nur von den angegebenen IP-Adressen
  • TCP Protokoll

Firewall aktivieren:

ufw enable

Status prüfen:

ufw status verbose

13. Datenbank und Benutzer anlegen

MariaDB Konsole starten:

mariadb

Admin Benutzer erstellen:

CREATE USER IF NOT EXISTS 'ws_mdb_pool_user'@'localhost' IDENTIFIED BY 'StarkesPasswortVergeben'; 

GRANT ALL PRIVILEGES ON *.* TO 'ws_mdb_pool_user'@'localhost' WITH GRANT OPTION;

#Benutzer für Nextcloud Webserver

CREATE USER 'ws_mdb_pool_user24'@'192.168.178.24' IDENTIFIED BY 'StarkesPasswortVergeben'; 
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, CREATE VIEW, SHOW VIEW, 
TRIGGER, REFERENCES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE ON nextcloud.* 
TO 'ws_mdb_pool_user24'@'192.168.178.24'; 
FLUSH PRIVILEGES;

#MariaDB verlassen

exit;

Zugriff über PHPMyAdmin testen

phpMyAdmin Login Seite
phpMyAdmin Login Seite

Unter der IP Eures Servers http://Server-IP/phpmyadmin könnt ihr nun den Login testen.

Im Internen Bereich könnt ihr mit eurem lokalen Admin testen ob ihr Zugriff auf die Datenbanken habt und Admin Rechte habt.

Geht dafür auf Datenbanken und erstellt Datenbanken mit dem Namen nextcloud und website.

Damit ist die Installation des MariaDB Datenbank Servers abgeschlossen.


Besonderheiten

Datenbankserver und Webserver sind getrennt.

Firewall erlaubt Zugriff auf Port 3306 nur für definierte Hosts.

Root Login über Netzwerk ist deaktiviert.

phpMyAdmin dient zur administrativen Verwaltung.

Diese Architektur verbessert:

Skalierbarkeit

Sicherheit

Performance

Weiterführende Fragen

1.) Was ist MariaDB?

MariaDB ist ein Open-Source relationales Datenbanksystem und eine Weiterentwicklung von MySQL.

Warum MariaDB statt MySQL?

MariaDB ist vollständig Open Source, schneller in vielen Szenarien und kompatibel zu MySQL.

Warum eine getrennte Datenbankserver Architektur?

Vorteile:

  • höhere Sicherheit
  • bessere Skalierbarkeit
  • bessere Performance
  • einfachere Wartung

Warum Port 3306 beschränken?

Die Einschränkung verhindert unautorisierten Zugriff aus dem Netzwerk.

Nur definierte Server können auf die Datenbank zugreifen.

Wozu phpMyAdmin?

phpMyAdmin ist eine Weboberfläche zur Verwaltung von MySQL/MariaDB Datenbanken.

Funktionen:

  • Tabellen erstellen
  • SQL Queries ausführen
  • Benutzer verwalten
  • Backups erstellen

Weiterführende Dokumente

Interne Dokumente:
Externe Dokumente:


Was ist eine SOP (Standard Operating Procedure)?

Eine SOP (Standard Operating Procedure) ist eine klar definierte, schriftliche Arbeitsanweisung, die beschreibt, wie ein Prozess Schritt für Schritt korrekt ausgeführt wird. Sie sorgt dafür, dass Aufgaben einheitlich, nachvollziehbar und in gleichbleibender Qualität erledigt werden.