Suivant: , Précédent: , Monter: Services   [Table des matières][Index]


10.8.10 Services de bases de données

Le module (gnu services databases) fournit les services suivants.

PostgreSQL

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 : postgresql-configuration

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))

The configuration file to use when running PostgreSQL. The default behaviour uses the postgresql-config-file record with the default values for the fields.

log-directory (default: "/var/log/postgresql")

The directory where pg_ctl output will be written in a file named "pg_ctl.log". This file can be useful to debug PostgreSQL configuration errors for instance.

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 : postgresql-config-file

Data type representing the PostgreSQL configuration file. As shown in the following example, this can be used to customize the configuration of PostgreSQL. Note that you can use any G-expression or filename in place of this record, if you already have a configuration file you’d like to use for example.

(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")

The logging method to use for PostgreSQL. Multiple values are accepted, separated by commas.

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 (default: "/var/run/postgresql")

Specifies the directory of the Unix-domain socket(s) on which PostgreSQL is to listen for connections from client applications. If set to #false PostgreSQL does not listen on any Unix-domain sockets, in which case only TCP/IP sockets can be used to connect to the server.

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.

The values can be numbers, booleans or strings and will be mapped to PostgreSQL parameters types Boolean, String, Numeric, Numeric with Unit and Enumerated described here.

Scheme Variable : postgresql-role-service-type

This service allows to create PostgreSQL roles and databases after PostgreSQL service start. Here is an example of its use.

(service postgresql-role-service-type
            (postgresql-role-configuration
             (roles
              (list (postgresql-role
                     (name "test")
                     (create-database? #t))))))

This service can be extended with extra roles, as in this example:

(service-extension postgresql-role-service-type
                   (const (postgresql-role
                           (name "alice")
                           (create-database? #t))))
Data Type : postgresql-role

PostgreSQL manages database access permissions using the concept of roles. A role can be thought of as either a database user, or a group of database users, depending on how the role is set up. Roles can own database objects (for example, tables) and can assign privileges on those objects to other roles to control who has access to which objects.

name

The role name.

permissions (default: '(createdb login))

The role permissions list. Supported permissions are bypassrls, createdb, createrole, login, replication and superuser.

create-database? (default: #f)

Whether to create a database with the same name as the role.

Data Type : postgresql-role-configuration

Data type representing the configuration of postgresql-role-service-type.

host (default: "/var/run/postgresql")

The PostgreSQL host to connect to.

log (default: "/var/log/postgresql_roles.log")

File name of the log file.

roles (default: '())

The initial PostgreSQL roles to create.

MariaDB/MySQL

Scheme Variable : mysql-service-type

This is the service type for a MySQL or MariaDB database server. Its value is a mysql-configuration object that specifies which package to use, as well as various settings for the mysqld daemon.

Type de données : mysql-configuration

Data type representing the configuration of 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")

The IP on which to listen for network connections. Use "0.0.0.0" to bind to all available network interfaces.

port (par défaut : 3306)

Port TCP sur lequel le serveur de base de données écoute les connexions entrantes.

socket (default: "/run/mysqld/mysqld.sock")

Socket file to use for local (non-network) connections.

extra-content (par défaut : "")

Additional settings for the my.cnf configuration file.

auto-upgrade? (default: #t)

Whether to automatically run mysql_upgrade after starting the service. This is necessary to upgrade the system schema after “major” updates (such as switching from MariaDB 10.4 to 10.5), but can be disabled if you would rather do that manually.

Memcached

Variable Scheme : memcached-service-type

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.

(service memcached-service-type)
Type de données : 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 on which to accept connections.

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.

MongoDB

Variable Scheme : mongodb-service-type

C’est le type de service pour MongoDB. La valeur de ce service est un objet mongodb-configuration.

(service mongodb-service-type)
Type de données : mongodb-configuration

Type de données représentant la configuration de mongodb.

mongodb (par défaut : mongodb)

Le paquet MongoDB à utiliser.

config-file (par défaut : %default-mongodb-configuration-file)

Le fichier de configuration pour MongoDB.

data-directory (par défaut : "/var/lib/mongodb")

Cette valeur est utilisée pour créer le répertoire, pour qu’il existe et appartienne à l’utilisateur mongodb. Il devrait correspondre au data-directory que MongoDB est configuré pour utiliser dans son fichier de configuration.

Redis

Variable Scheme : redis-service-type

C’est le type de service pour la base clef-valeur Redis dont la valeur est un objet redis-configuration.

Type de données : 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: , Précédent: , Monter: Services   [Table des matières][Index]