[comment]: # ({7af1bbaa-7af1bbaa})
# 1 Création de la base de données

[comment]: # ({/7af1bbaa-7af1bbaa})

[comment]: # ({e35a4783-fab90562})
#### Aperçu

Une base de données Zabbix doit être créée lors de l'installation du serveur ou du proxy Zabbix.

Cette section fournit des instructions pour créer une base de données Zabbix.
Un ensemble d'instructions distinct est disponible pour chaque base de données prise en charge.

::: noteclassic
Pour améliorer la sécurité de la base de données en créant des rôles/utilisateurs de base de données avec des privilèges minimaux, consultez les bonnes pratiques de création de base de données pour chaque base de données prise en charge :
<br><br>

-   [MySQL/MariaDB](/manual/best_practices/security/access_control/mysql)
-   [PostgreSQL/TimescaleDB](/manual/best_practices/security/access_control/postgresql)

Pour configurer des connexions TLS sécurisées, consultez [Connexion sécurisée à la base de données](/manual/appendix/install/db_encrypt).
:::

UTF-8 est le seul encodage pris en charge par Zabbix.
Il est connu pour fonctionner sans faille de sécurité.
Les utilisateurs doivent savoir qu'il existe des problèmes de sécurité connus lors de l'utilisation de certains autres encodages.
Pour passer à UTF-8, consultez [Réparation du jeu de caractères et du classement de la base de données Zabbix](/manual/appendix/install/db_charset_coll).
Voir aussi [Limites du filtrage avec les classements utf8mb4](/manual/installation/known_issues#limits-of-filtering-with-utf8mb4-collations).

[comment]: # ({/e35a4783-fab90562})

[comment]: # ({94aa3a83-fad527fc})
::: noteclassic
Si vous installez depuis le [dépôt Git Zabbix](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse?at=refs%2Fheads%2Frelease%2F7.4), vous devez exécuter la commande suivante avant de passer aux étapes suivantes :
<br><br>
`make dbschema`
:::

[comment]: # ({/94aa3a83-fad527fc})

[comment]: # ({ed6803ae-1e36e539})
#### MySQL/MariaDB

Les jeux de caractères utf8 (également appelé utf8mb3) et utf8mb4 sont pris en charge (avec les interclassements utf8_bin et utf8mb4_bin respectivement) afin que le serveur/proxy Zabbix fonctionne correctement avec une base de données MySQL.
Il est recommandé d'utiliser utf8mb4 pour les nouvelles installations.

Les déclencheurs déterministes doivent être créés lors de l'importation du schéma.
Sur MySQL et MariaDB, cela nécessite que `GLOBAL log_bin_trust_function_creators = 1` soit défini si la journalisation binaire est activée, qu'il n'y a pas de privilèges superutilisateur et que `log_bin_trust_function_creators = 1` n'est pas défini dans le fichier de configuration MySQL.

Si vous installez à partir des **paquets** Zabbix, suivez les [instructions](https://www.zabbix.com/download) pour votre plateforme.

Si vous installez Zabbix à partir des sources : 

* Créez et configurez une base de données et un utilisateur.

```bash
mysql -uroot -p<password>

mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user 'zabbix'@'localhost' identified by '<password>';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
mysql> quit;
```

* Importez les données dans la base de données et définissez utf8mb4 comme jeu de caractères par défaut (en supposant que vous vous trouvez dans le répertoire racine des sources Zabbix).
Pour une base de données de proxy Zabbix, seul `schema.sql` doit être importé (ni images.sql ni data.sql).

```bash
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# arrêtez-vous ici si vous créez une base de données pour le proxy Zabbix
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> --default-character-set=utf8mb4 zabbix < data.sql
```

`log_bin_trust_function_creators` peut être désactivé après l'importation réussie du schéma :

```bash
mysql -uroot -p<password>

mysql> SET GLOBAL log_bin_trust_function_creators = 0;
mysql> quit;
```

[comment]: # ({/ed6803ae-1e36e539})

[comment]: # ({dbad5843-61d6043c})
#### PostgreSQL

Vous devez disposer d’un utilisateur de base de données ayant les permissions nécessaires pour créer des objets de base de données.

Si vous installez à partir des **paquets** Zabbix, consultez les [instructions](https://www.zabbix.com/download) correspondant à votre plateforme.

Si vous installez Zabbix à partir des sources :

* Créez un utilisateur de base de données.

La commande shell suivante créera l’utilisateur `zabbix`.
Indiquez un mot de passe lorsque vous y êtes invité, puis saisissez-le à nouveau (notez qu’il se peut que le mot de passe `sudo` vous soit d’abord demandé) :

```bash
sudo -u postgres createuser --pwprompt zabbix
```

* Créez une base de données.

La commande shell suivante créera la base de données `zabbix` (dernier paramètre) avec l’utilisateur précédemment créé comme propriétaire (`-O zabbix`).

```bash
sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
```

* Importez le schéma initial et les données (en supposant que vous vous trouvez dans le répertoire racine des sources Zabbix).
Pour une base de données de proxy Zabbix, seul `schema.sql` doit être importé (`images.sql` et `data.sql` ne doivent pas l’être).

```bash
cd database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
# arrêtez-vous ici si vous créez une base de données pour le proxy Zabbix
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix
```

::: noteimportant
Les commandes ci-dessus sont fournies à titre d’exemple et fonctionneront dans la plupart des installations GNU/Linux.
Vous pouvez utiliser des commandes différentes selon la configuration de votre système/base de données, par exemple :
<br><br>
`psql -U <username>`
<br><br>
Si vous rencontrez des difficultés lors de la configuration de la base de données, veuillez consulter votre administrateur de base de données.
:::

[comment]: # ({/dbad5843-61d6043c})

[comment]: # ({2e49279b-cc68ca58})
#### TimescaleDB

Les instructions pour créer et configurer TimescaleDB sont fournies dans une [section](/manual/appendix/install/timescaledb) distincte.

[comment]: # ({/2e49279b-cc68ca58})

[comment]: # ({e8161295-02d49e4f})
#### SQLite

L'utilisation de SQLite est prise en charge uniquement pour **Zabbix proxy** !

La base de données sera créée automatiquement si elle n'existe pas.

Retournez à la [section d'installation](/manual/installation/install).

[comment]: # ({/e8161295-02d49e4f})
