# Bases MySQL, MariaDB et PostgreSQL et leurs utilisateurs

> Créez des bases de données et des utilisateurs sur votre serveur, choisissez leurs accès, récupérez les bases existantes et connectez-vous via un tunnel SSH.

La page **Bases de données** d'un serveur gère les bases de données et leurs utilisateurs sur ce serveur. Vous créez une base de données, créez un utilisateur avec un mot de passe, et choisissez précisément les bases auxquelles cet utilisateur a accès. Vimonto Deploy exécute le SQL sur le serveur pour vous : vous n'avez jamais besoin de vous connecter à la main à MySQL, MariaDB ou PostgreSQL pour le travail courant.

La page est disponible sur les serveurs dotés d'un moteur de base de données : les serveurs d'application et les serveurs de base de données (consultez [types de serveurs](https://ops.vimonto.com/docs/fr/servers/server-types)).

![La page Bases de données avec une liste de bases, leurs utilisateurs et les informations de connexion](https://ops.vimonto.com/docs-media/fr/server-databases.webp?v=161e760d "Bases de données et utilisateurs d'un serveur")

## Quels moteurs de base de données sont pris en charge ?

Vous choisissez le moteur quand vous [créez le serveur](https://ops.vimonto.com/docs/fr/servers/create-a-server). Un serveur fait tourner un seul moteur.

| Moteur | Versions | Port |
| --- | --- | --- |
| MySQL | 8.4 LTS, 8.0 | 3306 |
| MariaDB | 11.4 LTS, 10.11 LTS | 3306 |
| PostgreSQL | 18, 17, 16 | 5432 |

Les bases MySQL et MariaDB sont créées avec le jeu de caractères `utf8mb4` et la collation `utf8mb4_unicode_ci`. Tous les moteurs tournent en UTC.

## Avec quoi démarre un nouveau serveur ?

Le provisionnement crée une base de données et un utilisateur de base de données, tous deux nommés d'après l'utilisateur système du serveur (`vimonto` par défaut). Cet utilisateur a accès à toutes les bases de données du serveur. Son mot de passe est le **Mot de passe de la base de données** affiché une seule fois dans les mots de passe du serveur après le provisionnement ; conservez-le dans votre gestionnaire de mots de passe, car Vimonto Deploy le supprime dès que vous confirmez.

Dans la liste **Utilisateurs**, cet utilisateur est marqué **Utilisateur système** et affiche **Toutes les bases de données**. Il conserve cet accès : vous ne pouvez ni le limiter à certaines bases, ni le supprimer, car les sites sans utilisateur de base de données propre se connectent avec lui. Cliquez sur **Changer le mot de passe** à côté de lui pour lui donner un nouveau mot de passe ; Vimonto Deploy change alors uniquement le mot de passe et laisse ses droits tels quels. Mettez à jour `DB_PASSWORD` dans l'[environnement](https://ops.vimonto.com/docs/fr/sites/environment) de chaque site qui se connecte avec cet utilisateur. Tant que les mots de passe du serveur attendent encore votre confirmation, le nouveau mot de passe remplace aussi le **Mot de passe de la base de données** affiché à cet endroit.

## Créer une base de données

1. Ouvrez le serveur et choisissez **Bases de données** dans la barre latérale.
2. Cliquez sur **Nouvelle base de données**.
3. Saisissez un **Nom**, comme `shop_production`. Utilisez des lettres, des chiffres et des tirets bas, 63 caractères au maximum.
4. Cliquez sur **Créer**.

La base de données affiche **Ajout** jusqu'à ce qu'elle existe sur le serveur. Si la création échoue, cliquez sur **Réessayer**.

> [!TIP]
> Quand vous [créez un site](https://ops.vimonto.com/docs/fr/sites/create-a-site), vous pouvez créer sa base de données et un utilisateur dédié dans la même étape. La nouvelle base et le nouvel utilisateur apparaissent alors aussi ici.

## Ajouter un utilisateur de base de données

1. Dans la section **Utilisateurs**, cliquez sur **Nouvel utilisateur**.
2. Saisissez un **Nom** (lettres, chiffres et tirets bas, 32 caractères au maximum).
3. Saisissez un **Mot de passe** d'au moins 12 caractères, ou cliquez sur **Générer** pour un mot de passe aléatoire de 24 caractères.
4. Sous **Accès à**, cochez les bases de données que l'utilisateur peut utiliser.
5. Cliquez sur **Créer**.

Vimonto Deploy ne stocke pas les mots de passe des bases de données. Le mot de passe est envoyé une seule fois au serveur, dans une tâche chiffrée, puis oublié. Notez-le vous-même, par exemple dans l'[environnement](https://ops.vimonto.com/docs/fr/sites/environment) de votre site.

### Que peut faire un utilisateur de base de données ?

Un utilisateur reçoit tous les privilèges sur les bases que vous cochez, et aucun sur les autres. La liste sous chaque utilisateur affiche ses bases de données, ou **Aucun accès** si aucune n'est cochée.

- Sur MySQL et MariaDB, l'utilisateur est créé à la fois pour les connexions locales et pour les connexions depuis d'autres hôtes, avec les mêmes droits.
- Sur PostgreSQL, l'utilisateur reçoit tous les privilèges sur chaque base de données et sur son schéma `public`.

### Modifier les accès ou le mot de passe d'un utilisateur

Cliquez sur **Modifier** à côté d'un utilisateur. Changez les bases cochées sous **Accès à**, ou saisissez un nouveau **Mot de passe**. Laissez le mot de passe vide pour garder l'actuel. Cliquez sur **Enregistrer** : Vimonto Deploy retire les anciens privilèges de l'utilisateur et accorde exactement les bases désormais cochées. L'utilisateur système fait exception : il reçoit seulement un nouveau mot de passe, comme décrit plus haut.

## Récupérer les bases de données créées sur le serveur

Les bases de données créées en dehors de Vimonto Deploy, par exemple par une migration, une restauration ou à la main dans le [terminal](https://ops.vimonto.com/docs/fr/servers/terminal), n'apparaissent pas automatiquement. Cliquez sur **Récupérer depuis le serveur** pour les ajouter à la liste. Vimonto Deploy lit les bases présentes sur le serveur, ignore les bases système du moteur et ajoute chaque nouvelle base. Vous pouvez ensuite y donner accès à des utilisateurs et les inclure dans les [sauvegardes](https://ops.vimonto.com/docs/fr/servers/backups).

Seules les bases dont le nom se compose de lettres, de chiffres et de tirets bas sont prises en compte. Les utilisateurs créés en dehors de Vimonto Deploy ne sont pas récupérés.

## Se connecter à une base de données

La section **Connecter** affiche les informations pour vos clients de base de données et vos applications :

| Champ | Ce que c'est |
| --- | --- |
| **Hôte** | L'adresse IP privée du serveur s'il en a une, sinon son adresse IP publique. |
| **Port** | 3306 pour MySQL et MariaDB, 5432 pour PostgreSQL. |
| **Tunnel SSH** | Une commande toute prête pour joindre la base de données depuis votre ordinateur. |
| **URL de connexion** | Le format d'URL à utiliser, avec votre utilisateur, votre mot de passe et votre base de données. |

### Depuis un site sur le même serveur

Un site sur le même serveur se connecte à `127.0.0.1` sur le port du moteur, avec un utilisateur de base de données et son mot de passe. Placez ces valeurs dans l'[environnement](https://ops.vimonto.com/docs/fr/sites/environment) du site ; pour une application Laravel, `DB_HOST`, `DB_PORT`, `DB_DATABASE`, `DB_USERNAME` et `DB_PASSWORD`.

### Depuis votre ordinateur via un tunnel SSH

Le port de la base de données n'est pas ouvert sur internet. Pour utiliser un client de bureau comme TablePlus, DBeaver ou MySQL Workbench, ouvrez un tunnel SSH avec l'utilisateur système, à l'aide d'une [clé SSH](https://ops.vimonto.com/docs/fr/connections/ssh-keys) présente sur le serveur :

```bash
ssh -L 3306:127.0.0.1:3306 vimonto@203.0.113.10
```

Tant que le tunnel est ouvert, connectez votre client à `127.0.0.1` sur le port 3306 (5432 pour PostgreSQL) avec un utilisateur de base de données et son mot de passe. La plupart des clients de base de données peuvent aussi ouvrir eux-mêmes le tunnel SSH : saisissez l'adresse IP du serveur, l'utilisateur `vimonto` et votre clé privée dans les réglages SSH du client.

### Depuis d'autres serveurs

Sur un serveur de base de données dédié, le moteur écoute sur toutes les interfaces réseau, pour que les serveurs web et worker puissent s'y connecter. Quand le serveur de base de données est dans un [réseau privé](https://ops.vimonto.com/docs/fr/servers/server-types#serveurs-dans-un-réseau-privé), le provisionnement autorise déjà le port 3306 (ou 5432) depuis la plage d'adresses de ce réseau : connectez vos autres serveurs du réseau à l'adresse IP privée du serveur de base de données, sans règle supplémentaire. Pour vous connecter depuis ailleurs, par exemple depuis un serveur hors du réseau ou une adresse IP publique fixe, ajoutez vous-même une règle pour ce port depuis cette adresse sur la page [réseau](https://ops.vimonto.com/docs/fr/servers/network). Un serveur de base de données sans réseau privé n'accepte aucune connexion d'autres serveurs tant que vous n'ajoutez pas une telle règle.

Sur un serveur d'application, MySQL et MariaDB n'écoutent que sur le serveur lui-même, et PostgreSQL uniquement sur `localhost`. Utilisez un tunnel SSH pour les joindre depuis ailleurs.

> [!WARNING]
> N'autorisez jamais le port de la base de données depuis n'importe où. Limitez les règles de pare-feu aux adresses de vos propres serveurs.

## Supprimer une base de données ou un utilisateur

Cliquez sur **Supprimer** à côté d'une base de données, saisissez son nom pour confirmer et cliquez sur **Supprimer la base de données**. La base et toutes ses données sont définitivement supprimées.

Cliquez sur **Supprimer** à côté d'un utilisateur et confirmez avec **Supprimer l'utilisateur**. Les applications qui se connectent avec cet utilisateur ne peuvent alors plus joindre leur base de données. Sur PostgreSQL, les objets appartenant à l'utilisateur sont supprimés avec lui.

> [!WARNING]
> La suppression d'une base de données est irréversible. Faites d'abord une [sauvegarde](https://ops.vimonto.com/docs/fr/servers/backups) si vous risquez d'avoir besoin des données.

## Questions fréquentes

### Où trouver le mot de passe de la base de données ?

Vimonto Deploy ne stocke pas les mots de passe des utilisateurs de base de données que vous créez ; vous les choisissez ou les générez vous-même. Si vous en avez perdu un, cliquez sur **Modifier** à côté de l'utilisateur et définissez un nouveau mot de passe, puis mettez à jour les applications qui l'utilisent. Le mot de passe de l'utilisateur système est affiché une seule fois après le provisionnement.

### Un utilisateur de base de données peut-il accéder à plusieurs bases ?

Oui. Cochez sous **Accès à** chaque base dont l'utilisateur a besoin. Un utilisateur sans base cochée peut se connecter mais ne peut utiliser aucune base de données.

### Pourquoi mon autre serveur ne parvient-il pas à se connecter à la base de données ?

Vérifiez trois choses : la base de données tourne sur un serveur de base de données dédié (un serveur d'application n'accepte que les connexions locales), le pare-feu du serveur de base de données autorise le port depuis l'autre serveur (automatique dans un réseau privé, une règle à vous pour les autres adresses), et vous vous connectez à l'adresse IP privée quand les deux serveurs sont dans le même réseau privé.

### Vimonto Deploy gère-t-il Redis ou MongoDB ici ?

Non. Cette page gère MySQL, MariaDB et PostgreSQL. Redis est installé comme service sur les serveurs d'application et les serveurs de cache ; consultez [services](https://ops.vimonto.com/docs/fr/servers/services).
