Frage :Wie setze ich Umgebungsvariablen für die Verwendung mit einem systemd-Dienst von MySQL Server?
Es gibt eine Reihe verschiedener Methoden, die verwendet werden können, um Umgebungsvariablen für einen systemd-Dienst festzulegen. Die verwendete Methode kann je nach Linux-Distribution und Version der Distribution variieren. Das MySQL-Handbuch gibt an, dass die Einrichtung des Dienstes einfach wie folgt durchgeführt wird (nur Beispiel):
[Service] LimitNOFILE=max_open_files PIDFile=/path/to/pid/file Nice=nice_level LimitCore=core_file_limit
Methode 1 – Verwenden von „systemd edit“
Dies ist die bevorzugte Methode, eine Überschreibungsdatei zu erstellen und/oder zu bearbeiten, die die Umgebungsvariablen enthält. Der Befehl zum Erstellen/Bearbeiten der Override-Datei lautet:
# systemctl edit mysqld
Dies erstellt dann ein Verzeichnis (falls nicht vorhanden) und erstellt eine override.conf Datei, die die Variablen enthält. zB
[Service] Environment="TZ=time_zone_setting" Environment="AUTHENTICATION_PAM_LOG=1" Environment="LD_PRELOAD=/path/to/malloc/library"
Die Überschreibungsdatei und das Verzeichnis sind normalerweise:/etc/systemd/system/mysqld.service.d/override.conf
Methode 2 – Mehrere Variablen über eine Datei hinzufügen
Diese Methode ermöglicht das Hinzufügen mehrerer Umgebungsvariablen zum Dienst über eine einfache Datei.
[Service] LimitNOFILE=max_open_files PIDFile=/path/to/pid/file Nice=nice_level LimitCore=core_file_limit EnvironmentFile=-/etc/sysconf/mysqld
Das „– ‘ Zeichen am Anfang des EnvironmentFile-Werts soll systemd Fehler ignorieren lassen, wenn die Datei nicht existiert. Die Umgebungsdatei enthält einfach die Liste verschiedener Variablen im Format Name=Wert. Zum Beispiel:
LD_PRELOAD=/path/to/malloc/library TZ=time_zone_setting AUTHENTICATION_PAM_LOG=1
Die Umgebungsdatei kann beliebig sein, wie durch das EnvironmentFile-Attribut im Dienst definiert, sie könnte jedoch spezifisch für die Version und Distribution von Linux sein. Einige ältere Versionen erwarten, dass es sich in /etc/sysconf befindet (für Redhat-basierte Distributionen) im Vergleich zu /etc/default (für Debian-basierte Distributionen). Dies ist die Methode, die derzeit von den Oracle MySQL-Paketen verwendet wird.
Methode 3 – Fügen Sie die Umgebungsvariable direkt hinzu
Dies dient einfach dazu, eine Name=Wert-Einstellung in den Bereich [Service] der mysql-Dienstdatei hinzuzufügen.
[Service] LimitNOFILE=max_open_files PIDFile=/path/to/pid/file Nice=nice_level LimitCore=core_file_limit Environment="LD_PRELOAD=/path/to/malloc/library"
Die „Umgebung Das Schlüsselwort hier wird verwendet, um zu identifizieren, welche Umgebungsvariable angegeben ist. In der obigen Einstellung ist die Umgebungsvariable so definiert, dass sie eine andere malloc-Bibliothek für den MySQL-Server verwendet.