# Connexion à distance à votre base de données

Source: https://support.kapsulehost.com/fr-fr/database-remote-access

Où trouver vos identifiants de base de données, pourquoi les connexions distantes directes sur le port 3306 sont refusées, et comment connecter un outil de bureau via un tunnel SSH à la place.

Chaque site d'hébergement web KapsuleHost disposant d'une base de données obtient sa propre base de données, son propre utilisateur de base de données, et des identifiants que vous pouvez consulter à tout moment. Ce que vous ne pouvez pas faire, c'est vous y connecter directement via internet, et c'est délibéré. Ce guide couvre les identifiants, les deux méthodes d'accès prises en charge, et la configuration du tunnel dont les outils de base de données de bureau ont besoin.

## Trouver vos identifiants

Allez dans **Sites web**, cliquez sur le site, puis **Base de données**.

La page affiche cinq éléments :

| Champ | Valeur |
|---|---|
| Hôte | `127.0.0.1` |
| Port | `3306` |
| Base de données | le nom de votre base de données |
| Nom d'utilisateur | votre utilisateur de base de données |
| Mot de passe | masqué, avec un bouton d'affichage et un bouton de copie |

Le mot de passe n'est pas un affichage à usage unique. Vous pouvez revenir le consulter chaque fois que nécessaire, il n'est donc pas utile de le stocker séparément.

Le serveur de base de données est MariaDB 10.11, compatible avec MySQL. Cela a une conséquence pratique : un export réalisé depuis une version récente de MySQL peut contenir des collations que MariaDB ne reconnaît pas, et l'import échouera avec une erreur « unknown collation ». Si cela se produit, réexportez en utilisant une collation largement compatible telle que `utf8mb4_unicode_ci`, ou recherchez et remplacez-la dans le fichier d'export avant l'import.

![L'onglet Database d'un site dans KPanel, affichant les détails de connexion à la base de données](https://support.kapsulehost.com/help/screenshots/database-remote-access.84df4ba6.webp)

## Pourquoi l'hôte est 127.0.0.1

`127.0.0.1` signifie « cette machine ». Le serveur de base de données n'écoute que sur l'interface interne propre à la machine, et le port 3306 n'est pas non plus ouvert à internet au niveau du pare-feu. Il n'existe aucun paramètre dans le panneau pour l'ouvrir, et il n'y a pas de liste blanche d'IP pour cela.

Ce n'est pas un oubli. Un port de base de données exposé sur internet est l'une des cibles les plus systématiquement exploitées en hébergement : il est scanné en permanence, il révèle des informations de version à quiconque s'y connecte, et un seul mot de passe faible vous fait perdre l'intégralité du site. Le garder fermé élimine toute cette catégorie de risque.

Ainsi, une chaîne de connexion utilisant l'adresse IP publique de votre site et le port 3306 échouera toujours, depuis n'importe où, sur tous les plans. Il existe à la place deux méthodes d'accès prises en charge.

## Option 1 : phpMyAdmin dans le navigateur

La plus simple pour un coup d'œil rapide, une modification, ou un petit import ou export.

Sur la page Database, cliquez sur **Ouvrir phpMyAdmin**. Vous êtes connecté directement avec les identifiants propres à votre site et vous ne voyez que vos propres bases de données.

Le lien qui effectue cette opération est délibérément de courte durée, et il échoue de façons qui ressemblent à des erreurs sans en être :

- **Il expire au bout de 60 secondes.** Cliquez dessus dès qu'il apparaît.
- **Il fonctionne une seule fois.** Revenir en arrière et recharger ne fonctionnera pas ; générez-en un nouveau.
- **Il doit être ouvert depuis le même navigateur et le même réseau** que ceux depuis lesquels vous l'avez demandé. Si vous copiez le lien sur un autre appareil, ou si votre connexion change d'adresse en cours de route, il sera refusé.

Si vous voyez « This link has already been used » ou un message concernant une incohérence d'IP, c'est la protection qui fonctionne. Retournez sur la page Database et cliquez à nouveau sur le bouton.

Pour l'utilisation de phpMyAdmin lui-même, consultez [Utiliser phpMyAdmin](https://support.kapsulehost.com/fr-fr/sites-phpmyadmin).

## Option 2 : un tunnel SSH pour les outils de bureau

Si vous souhaitez utiliser un client de bureau, c'est la méthode prise en charge. Le tunnel ouvre une connexion chiffrée vers le serveur et redirige un port de votre propre machine à travers celle-ci, de sorte que votre client se connecte à ce qui ressemble à une base de données locale.

### Ce dont vous avez besoin au préalable

Une clé SSH sur le site. L'authentification par mot de passe n'est pas acceptée, cette étape n'est donc pas facultative.

1. Allez dans **Sites web**, le site, **Paramètres**, puis **Clés SSH**.
2. Collez la clé publique que vous utilisez déjà, ou générez une nouvelle paire de clés depuis le panneau.
3. Notez le nom d'utilisateur affiché sur cette page. C'est l'utilisateur système de votre site, et c'est celui avec lequel vous vous connectez.

Si vous générez une clé dans le panneau, **la clé privée n'est affichée qu'une seule fois et jamais plus**. Enregistrez-la immédiatement, et conservez-la dans un endroit que vous seul pouvez lire.

Vous recevrez également un e-mail chaque fois qu'une clé est ajoutée à votre site. C'est voulu. Si un tel e-mail arrive et que ce n'était pas vous, révoquez la clé immédiatement depuis cette page et lisez [Si votre site est piraté](https://support.kapsulehost.com/fr-fr/site-hacked-what-to-do).

Consultez [Ajouter des clés SSH](https://support.kapsulehost.com/fr-fr/adding-ssh-keys) pour la procédure complète.

> **Warning:** Un compte SFTP créé depuis l'onglet SFTP ne fonctionnera pas pour un tunnel. Ces comptes sont réservés au transfert de fichiers, sans accès shell ni redirection de port. Le tunnel nécessite l'utilisateur SSH propre au site, avec une clé. Consultez [Accès SFTP](https://support.kapsulehost.com/fr-fr/sftp-access).

### Ouvrir le tunnel

Depuis un terminal sur votre propre machine :

```sh
ssh -N -L 3307:127.0.0.1:3306 your-ssh-user@cp1-kapsule.kapsulehost.com
```

Remplacez `your-ssh-user` par le nom d'utilisateur indiqué sur la page Clés SSH. En détail :

- `-N` signifie ne pas exécuter de commande, simplement maintenir le tunnel ouvert.
- `-L 3307:127.0.0.1:3306` redirige le port 3307 de votre machine vers le port 3306 du serveur.
- Le port 3307 est utilisé plutôt que 3306 afin de ne pas entrer en conflit avec une base de données que vous pourriez avoir en local.

La commande n'affiche rien lorsqu'elle fonctionne. C'est normal. Laissez la fenêtre de terminal ouverte aussi longtemps que vous avez besoin de la connexion, et appuyez sur Ctrl+C pour la fermer.

### Connecter votre client

Une fois le tunnel ouvert, pointez votre outil de base de données vers :

| Paramètre | Valeur |
|---|---|
| Hôte | `127.0.0.1` |
| Port | `3307` |
| Nom d'utilisateur | le nom d'utilisateur de base de données depuis la page Database |
| Mot de passe | le mot de passe de base de données depuis la page Database |
| Base de données | le nom de votre base de données |

Notez la distinction : le nom d'utilisateur **SSH** est l'utilisateur système de votre site, et le nom d'utilisateur de la **base de données** est un utilisateur différent, indiqué sur la page Database. Confondre les deux est de loin l'erreur la plus fréquente à ce stade.

La plupart des clients de bureau disposent également d'une option intégrée « connexion via tunnel SSH », qui fait exactement ce qui précède sans terminal séparé. Renseignez l'hôte SSH `cp1-kapsule.kapsulehost.com`, le port 22, votre nom d'utilisateur SSH, et votre fichier de clé privée, puis les champs de base de données comme ci-dessus.

Consultez [Tunnel SSH pour base de données](https://support.kapsulehost.com/fr-fr/database-ssh-tunnel) pour la configuration propre à chaque client.

## Ligne de commande sur le serveur

Si vous êtes à l'aise avec un terminal, vous n'avez pas du tout besoin de tunnel. Connectez-vous en SSH et travaillez directement sur le serveur :

```sh
ssh your-ssh-user@cp1-kapsule.kapsulehost.com
mysqldump -u DBUSER -p DBNAME > backup.sql
```

C'est bien plus rapide que de faire transiter une grande base de données par un tunnel, et c'est la bonne méthode pour effectuer un export manuel avant un changement risqué. Pour WordPress en particulier, [WP-CLI](https://support.kapsulehost.com/fr-fr/wordpress-wp-cli) est généralement encore préférable.

## Dépannage

**« Connection refused » sur le port 3306 depuis votre propre machine.** Normal. Voir ci-dessus. Utilisez un tunnel.

**La commande de tunnel demande un mot de passe.** Votre clé n'est pas proposée ou n'est pas installée. Vérifiez que la clé figure sur la page Clés SSH et ajoutez `-i /path/to/your/private/key` à la commande.

**« Permission denied (publickey) ».** Mauvais nom d'utilisateur, ou mauvaise clé. Le nom d'utilisateur est celui indiqué sur la page Clés SSH, pas votre adresse e-mail de connexion KapsuleHost.

**« Address already in use » pour le port 3307.** Un tunnel est déjà ouvert, ou autre chose utilise ce port. Fermez l'autre tunnel, ou choisissez un autre port local, par exemple 3308.

**Le tunnel s'ouvre mais le client ne parvient pas à se connecter.** Vérifiez que votre client pointe bien vers `127.0.0.1` et le port local choisi, et non vers votre domaine.

**« Access denied for user ».** Identifiants de base de données, pas SSH. Affichez-les et copiez-les à nouveau depuis la page Database.

**« Unknown collation » lors de l'import.** Abordé ci-dessus. Réexportez avec une collation compatible.

> **Important:** Tout ce que vous faites dans un client de base de données se produit immédiatement et ne peut pas être annulé. Il n'y a aucune étape de confirmation ni corbeille. Effectuez une sauvegarde avant d'exécuter quoi que ce soit qui écrit des données. Consultez [Réaliser une sauvegarde](https://support.kapsulehost.com/fr-fr/taking-a-backup).

## Guides associés

- [Utiliser phpMyAdmin](https://support.kapsulehost.com/fr-fr/sites-phpmyadmin)
- [Tunnel SSH pour base de données](https://support.kapsulehost.com/fr-fr/database-ssh-tunnel)
- [Ajouter des clés SSH](https://support.kapsulehost.com/fr-fr/adding-ssh-keys)
- [Accès SFTP](https://support.kapsulehost.com/fr-fr/sftp-access)
- [Réaliser une sauvegarde](https://support.kapsulehost.com/fr-fr/taking-a-backup)
- [Websites](https://support.kapsulehost.com/fr-fr/sites-overview)
- [Glossaire de l'hébergement](https://support.kapsulehost.com/fr-fr/glossary)
