This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-22. For the latest, interactive version please visit https://mariadb.com/kb/.

MariaDB Server Docker Official Image Environment Variables

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.

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.