Question :Comment définir des variables d'environnement à utiliser avec un service systemd de MySQL Server ?
Il existe un certain nombre de méthodes différentes qui peuvent être utilisées pour définir des variables d'environnement pour un service systemd. La méthode utilisée peut varier selon la distribution Linux et la version de la distribution. Le manuel MySQL indique que la configuration du service se fait simplement comme (exemple uniquement) :
[Service] LimitNOFILE=max_open_files PIDFile=/path/to/pid/file Nice=nice_level LimitCore=core_file_limit
Méthode 1 - Utilisation de "systemd edit"
Il s'agit de la méthode préférée qui consiste à créer et/ou modifier un fichier de remplacement contenant les variables d'environnement. La commande pour créer/modifier le fichier de remplacement est :
# systemctl edit mysqld
Cela créera alors un répertoire (s'il n'existe pas) et créera un override.conf fichier qui contiendra les variables. par exemple
[Service] Environment="TZ=time_zone_setting" Environment="AUTHENTICATION_PAM_LOG=1" Environment="LD_PRELOAD=/path/to/malloc/library"
Le fichier et le répertoire de remplacement seront généralement :/etc/systemd/system/mysqld.service.d/override.conf
Méthode 2 - Ajouter plusieurs variables via un fichier
Cette méthode permet d'ajouter plusieurs variables d'environnement au service via un simple fichier.
[Service] LimitNOFILE=max_open_files PIDFile=/path/to/pid/file Nice=nice_level LimitCore=core_file_limit EnvironmentFile=-/etc/sysconf/mysqld
Le '– ' au début de la valeur EnvironmentFile permet à systemd d'ignorer les erreurs si le fichier n'existe pas. Le fichier d'environnement contiendra simplement la liste des différentes variables au format nom=valeur. Par exemple :
LD_PRELOAD=/path/to/malloc/library TZ=time_zone_setting AUTHENTICATION_PAM_LOG=1
Le fichier d'environnement peut être n'importe lequel, tel que défini par l'attribut EnvironmentFile dans le service, cependant, il peut être spécifique à la version et à la distribution de Linux. Certaines anciennes versions s'attendent à ce qu'il soit dans /etc/sysconf (pour les distributions basées sur Redhat) par rapport à /etc/default (pour les distributions basées sur Debian). Il s'agit de la méthode actuellement utilisée par les packages Oracle MySQL.
Méthode 3 - Ajouter directement la variable d'environnement
Il s'agit simplement d'ajouter un paramètre name=value dans le [Service] du fichier de service mysql.
[Service] LimitNOFILE=max_open_files PIDFile=/path/to/pid/file Nice=nice_level LimitCore=core_file_limit Environment="LD_PRELOAD=/path/to/malloc/library"
L'environnement ' Le mot-clé ici est utilisé pour identifier quelle variable d'environnement est spécifiée. Dans le paramètre ci-dessus, la variable d'environnement est définie pour utiliser une bibliothèque malloc différente pour le serveur MySQL.