MariaDB Server Docker Official Image Environment Variables
Contents
- MARIADB_ROOT_PASSWORD_HASH / MARIADB_ROOT_PASSWORD / MYSQL_ROOT_PASSWORD
- MARIADB_ALLOW_EMPTY_ROOT_PASSWORD / MYSQL_ALLOW_EMPTY_PASSWORD
- MARIADB_RANDOM_ROOT_PASSWORD / MYSQL_RANDOM_ROOT_PASSWORD
- MARIADB_ROOT_HOST / MYSQL_ROOT_HOST
- MARIADB_DATABASE / MYSQL_DATABASE
- MARIADB_USER / MYSQL_USER, MARIADB_PASSWORD_HASH / MARIADB_PASSWORD / MYSQL_PASSWORD
- MARIADB_MYSQL_LOCALHOST_USER / MARIADB_MYSQL_LOCALHOST_GRANTS
- MARIADB_HEALTHCHECK_GRANTS
- MARIADB_INITDB_SKIP_TZINFO / MYSQL_INITDB_SKIP_TZINFO
- MARIADB_AUTO_UPGRADE / MARIADB_DISABLE_UPGRADE_BACKUP
- MARIADB_MASTER_HOST
- MARIADB_REPLICATION_USER / MARIADB_REPLICATION_PASSWORD_HASH / MARIADB_REPLICATION_PASSWORD
Wenn du das Image startest, kannst du die Initialisierung der MariaDB Server-Instanz anpassen, indem du eine oder mehrere Umgebungsvariablen in der docker run-Befehlszeile übergibst. Bitte beachte, dass alle unten aufgeführten Variablen mit Ausnahme von MARIADB_AUTO_UPGRADE
keine Wirkung haben, wenn du den Container mit einem Datenverzeichnis startest, das bereits eine Datenbank enthält: Eine bereits vorhandene Datenbank wird beim Start des Containers immer unberührt gelassen.
Ab den Tags 10.2.38, 10.3.29, 10.4.19, 10.5.10 und allen Tags ab 10.6 werden die entsprechenden Variablen MARIADB_* bereitgestellt. MARIADB_*-Variablen werden immer vor den MYSQL_*-Variablen verwendet.
Eine der Variablen MARIADB_ROOT_PASSWORD_HASH, MARIADB_ROOT_PASSWORD, MARIADB_ALLOW_EMPTY_ROOT_PASSWORD oder MARIADB_RANDOM_ROOT_PASSWORD (oder gleichwertige Variablen, einschließlich *_FILE) ist erforderlich. Die anderen Variablen der Umgebung sind optional.
MARIADB_ROOT_PASSWORD_HASH / MARIADB_ROOT_PASSWORD / MYSQL_ROOT_PASSWORD
Hier wird das Kennwort festgelegt, das für das MariaDB-Root-Superuser-Konto verwendet werden soll.
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD / MYSQL_ALLOW_EMPTY_PASSWORD
Lege einen nicht leeren Wert fest, z. B. 1
, um zu erlauben, dass der Container mit einem leeren Passwort für den Root-Benutzer gestartet wird. HINWEIS: Es wird nicht empfohlen, diese Variable auf yes festzulegen, es sei denn, du weißt wirklich, was du tust, denn dann ist deine MariaDB-Instanz völlig ungeschützt und jeder kann vollständigen Superuser-Zugriff erlangen.
MARIADB_RANDOM_ROOT_PASSWORD / MYSQL_RANDOM_ROOT_PASSWORD
Auf einen nicht leeren Wert wie yes festlegen, um ein zufälliges Anfangspasswort für den Root-Benutzer zu generieren. Das generierte Root-Passwort wird auf stdout ausgegeben (GENERATED ROOT PASSWORD: .....).
MARIADB_ROOT_HOST / MYSQL_ROOT_HOST
Dies ist der Teil des Hostnamens des angelegten Root-Benutzers. Standardmäßig ist dies %, aber es kann auf jede von MariaDB erlaubte Hostname-Komponente festgelegt werden. Wenn du diesen Wert auf localhost festlegst, kann der Root-Benutzer nur über den Unix-Socket erreicht werden.
MARIADB_DATABASE / MYSQL_DATABASE
Mit dieser Variable kannst du den Namen einer Datenbank angeben, die beim Start des Images erstellt wird.
MARIADB_USER / MYSQL_USER, MARIADB_PASSWORD_HASH / MARIADB_PASSWORD / MYSQL_PASSWORD
Für die Erstellung eines Benutzers sind sowohl die Variablen user und password als auch eine Datenbank erforderlich. Dieser Benutzer erhält vollen Zugriff (entsprechend GRANT ALL) auf die Datenbank MARIADB_DATABASE.
Verwende diesen Mechanismus nicht, um den Superuser root zu erstellen. Dieser Benutzer wird standardmäßig mit dem Passwort erstellt, das in der Variable MARIADB_ROOT_PASSWORD / MYSQL_ROOT_PASSWORD angegeben ist.
MARIADB_MYSQL_LOCALHOST_USER / MARIADB_MYSQL_LOCALHOST_GRANTS
Setze MARIADB_MYSQL_LOCALHOST_USER auf einen nicht leeren Wert, um den Datenbankbenutzer mysql@locahost zu erstellen. Dieser Benutzer ist besonders nützlich für eine Reihe von Gesundheitsprüfungen und Sicherungsskripten.
Der mysql@localhost-Benutzer erhält standardmäßig USAGE
Berechtigungen. Wenn mehr Zugriff benötigt wird, können zusätzliche globale Privilegien in Form einer kommagetrennten Liste angegeben werden. Wenn du ein Volume freigibst, das den Unix-Socket von MariaDB enthält (standardmäßig /var/run/mysqld), können Privilegien, die über USAGE
hinausgehen, zu Vertraulichkeits-, Integritäts- und Verfügbarkeitsrisiken führen, also verwende eine minimale Menge. Er kann auch für Mariadb-backup verwendet werden. Das Skript healthcheck.sh dokumentiert auch die erforderlichen Privilegien für jeden Health Check-Test.
MARIADB_HEALTHCHECK_GRANTS
Lege MARIADB_HEALTHCHECK_GRANTS auf die Berechtigungen fest, die den Benutzern healthcheck@localhost
, healthcheck@127.0.0.1
, healthcheck@::1
, gegeben werden müssen. Wenn nichts angegeben wird, ist der Standard-Grant USAGE
.
Der hier verwendete Hauptwert ist REPLICA MONITOR für den healthcheck --replication Test.
MARIADB_INITDB_SKIP_TZINFO / MYSQL_INITDB_SKIP_TZINFO
Standardmäßig lädt das Einstiegsskript automatisch die Zeitzonendaten, die für die Funktion CONVERT_TZ() benötigt werden. Wenn sie nicht benötigt werden, deaktiviert ein nicht leerer Wert das Laden der Zeitzone.
MARIADB_AUTO_UPGRADE / MARIADB_DISABLE_UPGRADE_BACKUP
Lege MARIADB_AUTO_UPGRADE auf einen nicht leeren Wert fest, damit der Einstiegspunkt prüft, ob mariadb-upgrade ausgeführt werden muss, und wenn ja, das Upgrade vor dem Start des MariaDB-Servers ausführt.
Vor dem Upgrade wird eine Sicherungskopie der Systemdatenbank mit dem Namen system_mysql_backup_*.sql.zst im oberen Teil des datadir erstellt. Dieser Sicherungsprozess kann mit deaktiviert werden, indem MARIADB_DISABLE_UPGRADE_BACKUP auf einen nicht leeren Wert festgelegt wird.
Wenn MARIADB_AUTO_UPGRADE
festgelegt ist und die Datei .my-healthcheck.cnf
fehlt, werden die healthcheck
Benutzer neu angelegt, wenn sie nicht existieren, MARIADB_HEALTHCHECK_GRANTS
Die Passwörter der healthcheck
Benutzer werden auf einen Zufallswert zurückgesetzt und die .my-healthcheck.cnf
Datei wird mit dem neuen Passwort neu erstellt.
MARIADB_MASTER_HOST
Wenn dies angegeben wird, verbindet sich der Container mit diesem Host und repliziert von ihm.
MARIADB_REPLICATION_USER / MARIADB_REPLICATION_PASSWORD_HASH / MARIADB_REPLICATION_PASSWORD
Wenn MARIADB_MASTER_HOST angegeben wird, werden MARIADB_REPLICATION_USER und MARIADB_REPLICATION_PASSWORD verwendet, um sich mit dem Master zu verbinden.
Wird nichts angegeben, wird der MARIADB_REPLICATION_USER mit den REPLICATION REPLICA-Grants erstellt, die ein Client benötigt, um die Replikation zu starten.