Suivant: Services de courriels, Précédent: Services de son, Monter: Services [Table des matières][Index]
Le module (gnu services databases)
fournit les services suivants.
L’exemple suivant décrit un service PostgreSQL avec la configuration par défaut.
(service postgresql-service-type
(postgresql-configuration
(postgresql postgresql-10)))
Si les services ne démarrent pas, cela peut être dû à une grappe incompatible déjà présente dans data-directory. Ajustez-la (ou, si vous n’avez plus besoin de la grappe, supprimez data-directory) puis redémarrez le service.
L’authentification des pairs est utilisé par défaut et le compte utilisateur
postgres
n’a pas de shell, ce qui évite l’exécution directe de
psql
en tant que cet utilisateur. Pour utiliser psql
, vous
pouvez vous authentifier temporairement en tant que postgres
avec un
shell, créer un superutilisateur PostgreSQL avec le même nom qu’un des
utilisateurs du système et créer la base de données associée.
sudo -u postgres -s /bin/sh createuser --interactive createdb $MY_USER_LOGIN # Remplacez comme vous voulez.
Type de données représentant la configuration de
postgresql-service-type
.
postgresql
Le paquet PostgreSQL à utiliser pour ce service.
port
(par défaut : 5432
)Port sur lequel PostgreSQL écoutera.
locale
(par défaut : "en_US.utf8"
)Paramètre linguistique à utiliser par défaut lors de la création de la grappe de bases de données.
config-file
(par défaut : (postgresql-config-file)
)Le fichier de configuration à utiliser pour lancer PostgreSQL. Le comportement par défaut est d’utiliser l’enregistrement postgresql-config-file avec les valeurs par défaut pour les champs.
log-directory
(default: "/var/log/postgresql"
)Le répertoire où la sortie de pg_ctl
sera écrite, dans un fichier
nommé "pg_ctl.log"
. Ce fichier peut être utile pour déboguer les
erreurs de configuration de PostgreSQL par exemple.
data-directory
(par défaut : "/var/lib/postgresql/data"
)Répertoire dans lequel stocker les données.
extension-packages
(par défaut : '()
) ¶Des extensions supplémentaires peuvent être chargées à partir de paquets
listés dans extension-packages. Les extensions sont disponibles à
l’exécution. Par exemple, pour créer une base de données géographique avec
l’extension postgis
, on peut configurer postgresql-service de cette
manière :
(use-package-modules databases geo) (operating-system ... ;; postgresql est requis pour lancer `psql' mais postgis n'est pas requis pour son ;; bon fonctionnement. (packages (cons* postgresql %base-packages)) (services (cons* (service postgresql-service-type (postgresql-configuration (postgresql postgresql-10) (extension-packages (list postgis)))) %base-services)))
Ensuite l’extension devient visible et vous pouvez initialiser une base de données géographique de cette manière :
psql -U postgres > create database postgistest; > \connect postgistest; > create extension postgis; > create extension postgis_topology;
Vous n’avez pas besoin d’ajouter ce champ pour les extensions « contrib » comme hstore ou dblink comme elles sont déjà exploitables par postgresql. Ce champ n’est requis que pour ajouter des extensions fournies par d’autres paquets.
Type de données représentant le fichier de configuration de PostgreSQL. Comme montré dans l’exemple suivant, on peut l’utiliser pour personnaliser la configuration de PostgreSQL. Remarquez que vous pouvez utiliser n’importe quelle G-expression ou nom de fichier à la place de cet enregistrement, si par exemple vous avez déjà un fichier de configuration que vous voulez utiliser.
(service postgresql-service-type
(postgresql-configuration
(config-file
(postgresql-config-file
(log-destination "stderr")
(hba-file
(plain-file "pg_hba.conf"
"
local all all trust
host all all 127.0.0.1/32 md5
host all all ::1/128 md5"))
(extra-config
'(("session_preload_libraries" "auto_explain")
("random_page_cost" 2)
("auto_explain.log_min_duration" "100 ms")
("work_mem" "500 MB")
("logging_collector" #t)
("log_directory" "/var/log/postgresql")))))))
log-destination
(par défaut : "syslog"
)La méthode de journalisation de PostgreSQL. Plusieurs valeurs sont possibles, séparées par des virgules.
hba-file
(par défaut : %default-postgres-hba
)Nom de fichier ou G-expression pour la configuration de l’authentification par hôte.
ident-file
(par défaut : %default-postgres-ident
)Nom de fichier ou G-expression pour la configuration de la correspondance de noms d’utilisateurs.
socket-directory
(par défaut : "/var/run/postgresql"
)Spécifie le répertoire des sockets Unix-domain sur lesquels PostgreSQL
écoutera les connexion d’applications clientes. Si la valeur est ""
,
PostgreSQL n’écoute sur aucun socket Unix-domain, auquel cas seuls les
socket TCP/IP permettent de se connecter au serveur.
Par défaut, la valeur #false
signifie que la valeur par défaut de
PostgreSQL sera utilisée, actuellement ‘/tmp’.
extra-config
(par défaut : '()
)Liste de clés et valeurs supplémentaires à inclure dans le fichier de configuration de PostgreSQL. Chaque entrée dans la liste devrait être une liste où le premier élément est la clé, et les autres éléments sont les valeurs.
Les valeurs peuvent être des nombres, des booléens ou des chaînes et seront
transformées en types de paramètres de PostgreSQL Boolean
,
String
, Numeric
, Numeric with Unit
et Enumerated
décrits ici.
Ce service permet de créer des rôles PostgreSQL et des bases de données après le démarrage du service PostgreSQL. Voici un exemple d’utilisation.
(service postgresql-role-service-type
(postgresql-role-configuration
(roles
(list (postgresql-role
(name "test")
(create-database? #t))))))
Ce service peut être étendu avec des rôles supplémentaires, comme dans cet exemple :
(service-extension postgresql-role-service-type
(const (postgresql-role
(name "alice")
(create-database? #t))))
PostgreSQL gère les permissions d’accès à la base de données en utilisant le concept de rôle. Un rôle est soit comme un utilisateur de la base de données, soit un groupe d’utilisateurs, en fonction du paramétrage du rôle. Les rôles peuvent posséder des objets de la base (par exemple des tables) et peuvent assigner des privilèges sur ces objets à d’autres rôles pour contrôler qui a accès à quels objets.
name
Le nom du rôle.
permissions
(par défaut : '(createdb login)
)La liste des permissions du rôle. Les permissions prises en charge sont
bypassrls
, createdb
, createrole
, login
,
replication
et superuser
.
create-database?
(par défaut : #f
)Indique s’il faut créer une base de données avec le même nom que le rôle.
Type de données représentant la configuration de postgresql-role-service-type.
host
(par défaut : "/var/run/postgresql"
)L’hôte PostgreSQL sur lequel se connecter.
log
(par défaut : "/var/log/postgresql_roles.log"
)Nom du fichier du fichier de journal.
roles
(par défaut : '()
)Les rôles PostgreSQL initiaux à créer.
C’est le type du service pour une base de donnée MySQL ou MariaDB. Sa
valeur est un objet mysql-configuration
, qui spécifie le paquet à
utiliser ainsi que divers paramètres pour le démon mysqld
.
Type de données représentant la configuration de mysql-service-type.
mysql
(par défaut : mariadb)Objet paquet du serveur de base de données MySQL, qui peut être soit mariadb, soit mysql.
Pour MySQL, un mot de passe root temporaire sera affiché à l’activation. Pour MariaDB, le mot de passe root est vide.
bind-address
(par défaut : "127.0.0.1"
)L’IP sur laquelle écouter les connexions réseau. Utilisez "0.0.0.0"
pour écouter sur toutes les interfaces réseaux.
port
(par défaut : 3306
)Port TCP sur lequel le serveur de base de données écoute les connexions entrantes.
socket
(par défaut : "/run/mysqld/mysqld.sock"
)Fichier de socket à utiliser pour les connexions locales (pas via le réseau).
extra-content
(par défaut : ""
)Paramètres supplémentaires pour le fichier de configuration my.cnf.
extra-environment
(par défaut : #~'()
)Liste de variables d’environnement passées au processus mysqld
.
auto-upgrade?
(par défaut : #t
)Indique s’il faut automatiquement lancer mysql_upgrade
après avoir
démarré le service. C’est nécessaire pour mettre à jour le schéma
système après une mise à jour « majeure » (comme de passer de MariaDB 10.4
à 10.5), mais peut être désactivé si vous voulez plutôt le faire
manuellement.
C’est le type de service pour le service Memcached qui fournit un cache en mémoire distribué. La valeur pour le
type de service est un objet memcached-configuration
.
Type de données représentant la configuration de memcached.
memcached
(par défaut : memcached
)Le paquet Memcached à utiliser.
interfaces
(par défaut : '("0.0.0.0")
)Les interfaces réseaux sur lesquelles écouter.
tcp-port
(par défaut : 11211
)Port sur lequel accepter les connexions.
udp-port
(par défaut : 11211
)Port sur lequel accepter les connexions UDP, une valeur de 0 désactive l’écoute en UDP.
additional-options
(par défaut : '()
)Options de la ligne de commande supplémentaires à passer à memcached
.
C’est le type de service pour la base clef-valeur Redis dont la valeur est un objet redis-configuration
.
Type de données représentant la configuration de redis.
redis
(par défaut : redis
)Le paquet Redis à utiliser.
bind
(par défaut : "127.0.0.1"
)Interface réseau sur laquelle écouter.
port
(par défaut : 6379
)Port sur lequel accepter les connexions, une valeur de 0 désactive l’écoute sur un socket TCP.
working-directory
(par défaut : "/var/lib/redis"
)Répertoire dans lequel stocker la base de données et les fichiers liés.
Suivant: Services de courriels, Précédent: Services de son, Monter: Services [Table des matières][Index]