Sites web

Connexion à votre base de données à distance

Where to find your database credentials, why direct remote connections on port 3306 are refused, and how to connect a desktop tool through an SSH tunnel instead.

Où trouver vos identifiants de base de données, pourquoi les connexions à distance 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 connecter directement via Internet, et c'est intentionnel. Ce guide couvre les identifiants, les deux méthodes d'accès prises en charge et comment configurer le tunnel dont les outils de base de données de bureau ont besoin.

Trouver vos identifiants

Allez à Websites, cliquez sur le site, puis Files, puis Database.

La page affiche cinq éléments :

FieldValue
Host127.0.0.1
Port3306
Databasele nom de votre base de données
Usernamevotre utilisateur de base de données
Passwordmasqué, avec un bouton de révélation et un bouton de copie

Le mot de passe ne s'affiche pas une seule fois. Vous pouvez revenir et le consulter chaque fois que vous en avez besoin, il n'est donc pas nécessaire de le conserver séparément.

Le serveur de base de données est MariaDB 10.11, qui est compatible MySQL. Cela importe d'une seule façon pratique : un dump exporté depuis un serveur MySQL récent peut contenir des classements que MariaDB ne reconnaît pas, et l'importation échouera avec une erreur « unknown collation ». Si cela se produit, réexportez en utilisant un classement largement compatible tel que utf8mb4_unicode_ci, ou recherchez et remplacez-le dans le fichier dump avant d'importer.

L'onglet Database pour un site dans KPanel

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 de la machine, et le port 3306 n'est pas non plus ouvert à Internet au pare-feu. Il n'existe aucun paramètre dans le panneau pour l'ouvrir, et il n'existe pas de liste blanche d'IP pour celui-ci.

Ce n'est pas une inadvertance. Un port de base de données exposé à Internet est l'une des choses les plus régulièrement exploitées en hébergement : il est scanné constamment, il fuit les informations de version à quiconque se connecte, et un seul mot de passe faible vous fait perdre l'intégralité du site. Le garder fermé supprime toute cette catégorie de risque.

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

Option 1: phpMyAdmin dans le navigateur

La plus facile pour un coup d'oeil rapide, une modification ou un petit import ou export.

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

Le lien qui fait cela est intentionnellement de courte durée, et il échoue de manières qui ressemblent à des erreurs mais ne le sont pas :

  • Il expire en 60 secondes. Cliquez dessus dès qu'il apparaît.
  • Il fonctionne une 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 depuis lesquels vous l'avez demandé. Si vous copiez le lien vers un autre appareil, ou si votre connexion change d'adresse au cours du processus, il est refusé.

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

Pour en savoir plus sur phpMyAdmin lui-même, consultez Utiliser 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 au serveur et transfère un port sur votre propre machine à travers celui-ci, afin que votre client se connecte à ce qui ressemble à une base de données locale.

Ce qu'il vous faut d'abord

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

  1. Allez à Websites, le site, Files, puis SSH Keys.
  2. Collez soit la clé publique que vous utilisez déjà, soit 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 s'affiche une fois et jamais plus. Enregistrez-la immédiatement et conservez-la quelque part où seul vous pouvez y accéder.

Vous recevrez également un email chaque fois qu'une clé est ajoutée à votre site. C'est intentionnel. Si un email arrive et ce n'était pas vous, révoquez-le immédiatement depuis cette page et lisez Si votre site est piraté.

Consultez Ajouter des clés SSH pour la procédure complète.

Un compte SFTP créé sur l'onglet SFTP ne fonctionnera pas pour un tunnel. Ces comptes sont réservés au transfert de fichiers uniquement, sans shell et sans redirection de port. Le tunneling nécessite l'utilisateur SSH propre du site avec une clé. Consultez Accès SFTP.

Ouvrir le tunnel

Depuis un terminal sur votre propre machine :

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 de la page SSH Keys. En le décomposant :

  • -N signifie ne pas exécuter une commande, simplement maintenir le tunnel ouvert.
  • -L 3307:127.0.0.1:3306 transfère le port 3307 de votre machine vers le port 3306 sur le serveur.
  • Le port 3307 est utilisé au lieu de 3306 afin qu'il ne entre pas en conflit avec une base de données que vous pourriez exécuter localement.

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

Connecter votre client

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

SettingValue
Host127.0.0.1
Port3307
Usernamele nom d'utilisateur de la base de données de la page Database
Passwordle mot de passe de la base de données de la page Database
Databasele 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 database en est un différent de la page Database. Confondre ces deux noms est de loin l'erreur la plus courante ici.

La plupart des clients de bureau disposent également d'une option intégrée « se connecter via le tunnel SSH », qui fait exactement ce qui précède sans terminal séparé. Remplissez 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 pour la configuration client par client.

Ligne de commande sur le serveur

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

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

C'est beaucoup plus rapide que de tirer une grande base de données à travers un tunnel, et c'est la bonne façon de faire un dump manuel avant une modification risquée. Pour WordPress spécifiquement, WP-CLI est généralement encore mieux.

Dépannage

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

La commande du tunnel vous demande un mot de passe. Votre clé n'est pas offerte ou n'est pas installée. Vérifiez que la clé se trouve sur la page SSH Keys 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 de la page SSH Keys, pas votre email de connexion Kapsule.

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

Le tunnel s'ouvre mais le client ne peut pas se connecter. Confirmez que votre client est pointé vers 127.0.0.1 et votre port local choisi, pas vers votre domaine.

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

« Unknown collation » lors de l'importation. Couvert ci-dessus. Réexportez avec un classement compatible.

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 pas d'étape de confirmation et pas de corbeille. Faites une sauvegarde avant d'exécuter quoi que ce soit qui écrit. Consultez Effectuer une sauvegarde.

Guides connexes

Vous avez besoin d'aide?

Envoyez-nous un email à support@kapsulehost.com ou ouvrez un chat dans KPanel.

Ouvrir KPanel
Connexion à votre base de données à distance