Maradb über docker (compose) installieren und in Plesk integrieren

Plesk bietet die Möglichkeit weitere Datenbanken in der Oberfläche einzubinden. Wenn man eine neuere/andere Version der Datenbank nutzen möchte ist dies sehr hilfreich. Dies ist mit Moodle 3.9 und Ubuntu 18.04 notwendig, da die Datenbankversion zu alt ist und ein update auf Ubuntu 20.04 zu diesem Zeitpunkt von Plesk noch nicht unterstützt wird.

Installation Docker

Dies sind zusammen kopierte Befehle aus der offiziellen Dokumentation. Zusätzlich habe ich direkt docker-compose mit installiert. Befehle als root ausführen!

apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-compose

Ich empfehle docke nicht als root laufen zu lassen. Entweder erstellt man einen eigenen Benutzer bzw. ich habe mich dazu entschieden docker unter den Benutzernamen einer meiner Domains laufen zu lassen.

sudo usermod -aG docker DOMAIN_USERNAME

Docker compose Datei

Zuerst muss eine docker-compose.yml Datei erstellt werden. Z.B. unter /var/www/domain.de/docker

version: "3.3"

services:
  mariadb_moodle01:
    image: mariadb:10.5
    container_name: mariadb_moodle01
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=123test
    volumes:
      - /var/www/vhosts/domain.de/dockerdb/data/mariadb:/var/lib/mysql
    ports:
      - 3316:3306
    command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']

Der Pfad für die Daten, Passwort und Name des containers sollten angepasst werden. Die Parameter zum starten der Datenbank sind angepasst, damit für moodle volle UFT8 Unterstützung herrscht.
Der Lokale Port (in diesem Fall 3316) kann nach belieben angepasst werden, sollte sich aber nicht mit einem bestehenden überschneiden.

Starten / Neu erstellen

Es ist empfehlenswert ein Skript z.b. rebuild.sh zu erstellen, welches den docker container installiert und startet bzw. auch ein update durchführt wenn eine neuere existiert.

#!/bin/bash
cd $(dirname "$0")
docker-compose up -d --build mariadb_moodle01

Danach das skript mit chmod +x ausführbar machen und starten.

Passwort für lokalen Login ändern (optional)

Wenn man das root password ändern möchte und dich per mysql Konsolen client einloggt, muss man aufpassen auf welcher Datenbank man landet. Beim login zum localhost wird der port ignoriert man muss zusätzlich protocol=TCP angeben.

mysql --user=root --port=3316 --protocol=TCP --password

Passwort ändern wenn gewünscht.

grant all on *.* to root@localhost identified by '123test' with grant option;
flush privileges;
quit;

Datenbank in Plesk einrichten

Unter „Tools & Settings“ die Datenbank Server konfigurieren.

Tools & Settings -> Database Servers
Add Database Server

Wichtig ist hier den Domainnamen des Servers anzugeben, da wenn hier localhost angegeben wird, der Port ignoiert wird und sich zur plesk mariadb verbunden wird.

Verbindungsdaten

Aus diesem Grund müssen remote Verbindungen zugelassen werden.

Database Settings
Allow remote connections from any host

Datenbank für Benutzer/Domains erstellen

Beim erstellen einer neuen Datenbank kann man nun den Datenbankserver auswählen.

Add a Database

Automatisches Update

nano /etc/cron.weekly/update-mariadb-docker

Das Skript zum erstellen und updaten der ausführen lassen


#!/bin/bash
echo "$(date) start update" >> /var/log/update-mariadb-docker.log
/var/www/vhosts/nissel.it/dockerdb/rebuild.sh >> /var/log/update-mariadb-docker.log 2>&1
chmod +x /etc/cron.weekly/update-mariadb-docker

Backup

Wenn es ein plesk Backup dieser Domain oder des Servers gibt, kann auf den data Ordner des maradb Ordner nicht zugegriffen werden. Deswegen sollte man diesen aus dem Backup ausschließen. Im Normalen Datenbank Backup der Domain (mysqldump) ist der Container enthalten.

Plesk: 18.0.31
Ubuntu: 18.04.5

Links

https://canox.net/2017/08/passwort-fuer-den-root-benutzer-von-mariadb-setzen/

https://dev.mysql.com/doc/refman/8.0/en/connecting.html

https://docs.docker.com/engine/install/ubuntu/

https://docs.docker.com/engine/install/linux-postinstall/

https://docs.moodle.org/310/en/MySQL_full_unicode_support

2 Antworten auf „Maradb über docker (compose) installieren und in Plesk integrieren“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert