# MariaDB unter Proxmox installieren: So geht‘s

MariaDB auf einem [Proxmox](https://www.ionos.de/digitalguide/server/knowhow/proxmox/) zu betreiben, bietet viele Vorteile für alle, die Home Assistant oder andere datenintensive Anwendungen im eigenen Netzwerk nutzen. In dieser Anleitung erfahren Sie, wie Sie eine eigene MariaDB-Datenbank in einem Proxmox LXC-Container installieren, konfigurieren und in Betrieb nehmen.

## Wann ist MariaDB auf Proxmox sinnvoll?

Der Einsatz von MariaDB auf Proxmox bietet sich an, wenn Sie Datenbankdienste flexibel in isolierten Umgebungen verwenden möchten. Proxmox ermöglicht es, [MariaDB](https://www.ionos.de/digitalguide/server/knowhow/was-ist-mariadb/) in **Containern (LXC) oder virtuellen Maschinen (KVM) zu installieren** und so unterschiedliche Anforderungen getrennt zu erfüllen.

## Voraussetzungen für die Einrichtung

Bevor Sie starten, sollte Folgendes vorhanden sein:

- Ein laufender Proxmox-Host (VE 7 oder 8)
- Zugriff auf die Weboberfläche und Shell von Proxmox
- Ausreichend Speicherplatz (mind. 4 GB) und [RAM](https://www.ionos.de/digitalguide/server/knowhow/was-ist-ein-arbeitsspeicher/) (mind. 1 GB) für den LXC
- Netzwerkzugang zum Container (per DHCP oder statischer [IP-Adresse](https://www.ionos.de/digitalguide/server/knowhow/was-ist-eine-ip-adresse/))

## Schritt für Schritt: MariaDB-LXC-Container unter Proxmox installieren

Mit Proxmox lassen sich MariaDB-Instanzen als **LXC-Container** effizient und ressourcenschonend betreiben. Die folgende Anleitung zeigt, wie Sie einen solchen Container einrichten und MariaDB darin installieren.

### Schritt 1: Skript ausführen

Der einfachste Weg, MariaDB als LXC auf Proxmox zu installieren, ist über ein **Community-Skript**. Melden Sie sich über die Proxmox-Weboberfläche an und wählen Sie Ihren Node. Klicken Sie dort auf „Shell“ und führen Sie folgenden Befehl aus:

```bash
bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/mariadb.sh)"
```

Sie erhalten eine Sicherheitsabfrage: Bestätigen Sie mit der [Eingabetaste](https://www.ionos.de/digitalguide/websites/web-entwicklung/eingabetaste/). Sie können entweder die Standard- oder erweiterte Installation nutzen.

### Schritt 2: Installation konfigurieren

Bei der Standardinstallation werden folgende Einstellungen verwendet:

- **RAM**: 1 GB
- **Speicher**: 4 GB
- **CPU**: 1 vCore
- **Container-Typ**: unprivileged
- **Netzwerk**: [DHCP](https://www.ionos.de/digitalguide/server/konfiguration/dhcp-das-client-server-protokoll-im-ueberblick/)

Diese Konfiguration ist für die meisten Anwendungsfälle ausreichend. Wenn Sie möchten, können Sie im erweiterten Modus weitere Parameter setzen, wie zum Beispiel die Debian-Version, ein Root-Passwort oder eine statische IP-Adresse.

Während der Installation fragt das Skript, ob Sie **Adminer** ebenfalls installieren wollen. Adminer ist ein leichtgewichtiges Web-Frontend für Datenbanken. Bestätigen Sie mit `Y`, wenn Sie später über Ihren Browser auf die Datenbank zugreifen möchten.

Nach der erfolgreichen Einrichtung sehen Sie die Meldung `Completed Successfully!`. Sie können nun mit der Konfiguration fortfahren.

### Schritt 3: Konfigurationsdatei anpassen

Damit Anwendungen wie Home Assistant auf die Datenbank zugreifen können, müssen Sie den **Remote-Zugriff** explizit erlauben.

Starten Sie die Konsole des MariaDB-LXC über die Proxmox-Oberfläche. Öffnen Sie die Hauptkonfigurationsdatei:

```bash
nano /etc/mysql/my.cnf
```

Suchen Sie die Zeile `#port = 3306` und entfernen Sie das Kommentarzeichen (`#`), damit die Zeile aktiv ist. Speichern Sie mit \[CTRL\] + \[O\], bestätigen Sie mit Enter und schließen Sie mit \[CTRL\] + \[X\].

### Schritt 4: Server-Konfiguration ändern

Anschließend bearbeiten Sie die Server-Datei:

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

Suchen Sie die Zeile mit:

```bash
bind-address = 127.0.0.1
```

und kommentieren Sie diese aus, indem Sie ein `#` davor setzen:

```bash
#bind-address = 127.0.0.1
```

Speichern und schließen Sie die Datei wie zuvor. Starten Sie den MariaDB-Dienst neu:

```bash
systemctl restart mariadb
```

Damit ist der Zugriff aus dem lokalen Netzwerk möglich.

### Schritt 5: MariaDB absichern

MariaDB bringt ein eigenes **Sicherheitsskript** mit, um grundlegende Schutzmaßnahmen einzurichten. Starten Sie das Skript in der Konsole des Containers:

```bash
mariadb-secure-installation
```

Das Skript fragt Sie schrittweise nach folgenden Punkten:

- Enter current password for root (enter for none):
- Change the root password? \[Y/n\] n
- Remove anonymous users? \[Y/n\] y
- Disallow root login remotely? \[Y/n\] y
- Remove test database and access to it? \[Y/n\] y
- Reload privilege tables now? \[Y/n\] y

Wenn Sie alle Schritte durchgeführt haben, ist Ihre MariaDB-Installation grundlegend abgesichert. Die Datenbank ist nun bereit für die Einrichtung von Benutzerinnen oder Benutzern und Diensten.

### Schritt 6: Benutzer und Datenbank anlegen

Wechseln Sie nun in die MariaDB-Shell:

```bash
/usr/bin/mariadb
```

Legen Sie einen neuen Benutzer oder eine neue Benutzerin für Ihre Anwendung an:

```sql
CREATE USER 'homeuser'@'localhost' IDENTIFIED BY 'safepassword';
```

Geben Sie diesem Benutzer oder dieser Benutzerin volle Rechte auf alle Datenbanken:

```sql
GRANT ALL ON *.* TO 'homeuser'@'localhost' WITH GRANT OPTION;
```

Wenn Sie den Zugriff auch über das lokale Netzwerk erlauben möchten, führen Sie Folgendes aus:

```sql
GRANT ALL ON *.* TO 'homeuser'@'192.168.0.%' IDENTIFIED BY 'safepassword' WITH GRANT OPTION;
```

Erstellen Sie nun eine eigene Datenbank, zum Beispiel für Home Assistant:

```sql
CREATE DATABASE homeassistant;
```

Wenden Sie die Rechte sofort an:

```sql
FLUSH PRIVILEGES;
```

Verlassen Sie die Datenbank-Shell mit:

```sql
exit
```

Damit ist das Benutzerkonto erstellt und man kann sich mit dem gesetzten Passwort anmelden. Auch die Datenbank steht bereit für die Verbindung mit externen Diensten.

### Schritt 7: Netzwerk und Startreihenfolge konfigurieren

Damit MariaDB zuverlässig mit anderen Anwendungen wie **Home Assistant** zusammenarbeitet, sollten Sie die Netzwerkumgebung absichern und sicherstellen, dass der Datenbankcontainer vor anderen Containern startet.

Wenn Sie in der Container-Konfiguration **DHCP** gewählt haben, erhält der MariaDB-LXC eine dynamische IP-Adresse. Diese kann sich nach einem Neustart ändern. Um Verbindungsprobleme zu vermeiden, legen Sie entweder eine statische IP innerhalb der LXC-Netzwerkeinstellungen fest oder vergeben im Router eine feste IP über DHCP-Reservierung.

So finden Sie die aktuelle IP-Adresse des Containers heraus:

```bash
ip a
```

Oder im Proxmox-Interface unter „Summary“ -&gt; „Network“.

### Schritt 8: Startverhalten des Containers definieren

Damit Home Assistant beim Start auf die Datenbank zugreifen kann, muss der MariaDB-Container vorab gestartet sein. Sie können die Startreihenfolge in Proxmox festlegen:

1. Wählen Sie den MariaDB-Container in der linken Liste.
2. Klicken Sie im mittleren Bereich auf Options.
3. Doppelklicken Sie auf „Start/Shutdown order“.
4. Aktivieren Sie die Checkbox und setzen Sie: „Start order: 1“ und „Startup delay: 60 Sekunden“.

Wiederholen Sie den Vorgang für den Home-Assistant-Container, setzen Sie dort zum Beispiel „Start order 2“ und „Startup delay 10 Sekunden“.

### Schritt 9: Home Assistant mit MariaDB verbinden

Sobald die Datenbank bereitsteht und eine feste IP-Adresse besitzt, können Sie Home Assistant so konfigurieren, dass es statt [SQLite](https://www.ionos.de/digitalguide/websites/web-entwicklung/sqlite/) auf MariaDB zugreift.

Öffnen Sie dazu die Datei `configuration.yaml` in Home Assistant, beispielsweise per File Editor Add-on oder Visual Studio Code:

```yaml
recorder:
    db_url: mysql://homeuser:safepassword@192.168.0.45:3306/homeassistant?charset=utf8mb4
```

Ersetzen Sie Benutzername, Passwort, IP-Adresse und Datenbanknamen durch Ihre eigenen Angaben. Achten Sie darauf, dass MariaDB vor Home Assistant geladen wurde.

Nach dem Speichern starten Sie Home Assistant neu. Wenn alles korrekt eingerichtet ist, werden neue Daten in der MariaDB-Datenbank gespeichert.

### Schritt 10: Backups mit Proxmox

Proxmox erlaubt Snapshots und Backups von einzelnen Containern. Das heißt, Sie können den MariaDB-LXC jederzeit sichern – manuell oder zeitgesteuert:

1. Wählen Sie in der linken Liste Ihren MariaDB-Container aus.
2. Klicken Sie oben auf Backup.
3. Wählen Sie den Speicherort (zum Beispiel „local“), den Modus (Snapshot empfohlen) und starten Sie den Vorgang.

Für automatische Backups können Sie im Datacenter unter Backup Zeitpläne definieren.

Tipp Wie Sie [MariaDB via Docker installieren](https://www.ionos.de/digitalguide/hosting/hosting-technik/mariadb-docker/) oder [MariaDB via Kubernetes einrichten](https://www.ionos.de/digitalguide/hosting/hosting-technik/mariadb-kubernetes/), erfahren Sie in weiteren Ratgebern.


This is a markdown version of: [https://www.ionos.de/digitalguide/hosting/hosting-technik/proxmox-mariadb/](https://www.ionos.de/digitalguide/hosting/hosting-technik/proxmox-mariadb/) for AI/LLM consumption.