Cet article est aussi disponible en :

Comment me connecter à ma base MySQL ou PostgreSQL depuis l'extérieur ?

Par défaut, vos bases de données MySQL et PostgreSQL n'acceptent que les connexions venant de votre hébergement. Une connexion depuis votre ordinateur, depuis un outil de BI ou depuis un autre serveur est refusée, quel que soit le mot de passe. C'est volontaire : une base ouverte à tout Internet est l'un des moyens les plus rapides de perdre ses données.


Pour vous connecter depuis l'extérieur, vous déclarez l'adresse IP depuis laquelle vous vous connecterez. Cela prend une minute, et la même liste couvre MySQL comme PostgreSQL.


Un accès s'applique à tout votre compte. Une adresse déclarée ici ouvre toutes les bases de votre compte, MySQL comme PostgreSQL, à tous vos utilisateurs de bases. Il n'existe pas de réglage base par base. Un mot de passe valide reste évidemment nécessaire, mais ne déclarez que des adresses que vous maîtrisez et supprimez celles dont vous ne vous servez plus.



Déclarer votre adresse IP


  1. Dans cPanel, section Bases de données, ouvrez Remote Database Access (accès distant aux bases).
  2. Dans Ajouter un hôte d'accès, saisissez l'adresse IP publique de la machine qui se connectera.
  3. Ajoutez un commentaire (bureau, mon portable, serveur Metabase) pour la reconnaître plus tard.
  4. Cliquez sur Ajouter un hôte.


L'accès s'ouvre en quelques secondes. Rien d'autre à configurer, et rien à nous demander.


Une entrée que vous n'avez pas ajoutée ? La liste contient souvent déjà une ou deux adresses. Ce sont celles de votre serveur, inscrites par cPanel pour que les sites qu'il héberge puissent joindre leurs bases. C'est normal, il n'y a pas lieu de s'en inquiéter. N'y touchez pas : les supprimer peut casser vos propres sites.


Quelle adresse IP ? L'adresse publique, pas le 192.168.x.x ou 10.x.x.x que voit votre machine. Ouvrez hodi.host/ip depuis la machine qui se connectera : la page affiche l'adresse publique qu'elle présente à Internet, en IPv4 et en IPv6.


Attention aux connexions de bureau et de domicile : la plupart sont en IP dynamique, qui change de temps en temps, parfois à chaque redémarrage de la box. Le jour où votre connexion ne passe plus sans raison apparente, vérifiez d'abord votre IP : elle a probablement changé, et il suffit de déclarer la nouvelle.


Vous pouvez déclarer une plage avec le caractère générique %, par exemple 203.0.113.% pour toute une classe C. Restez le plus précis possible : toutes les adresses de la plage déclarée peuvent atteindre vos bases.



Se connecter à MySQL


Paramètre

Valeur

Hôte

le nom d'hôte de votre serveur, par exemple run1.hodi.host

Port

3306

Base

moncompte_mabase

Utilisateur

moncompte_monuser

Mot de passe

celui que vous avez défini dans cPanel


cPanel préfixe les noms de bases et d'utilisateurs avec le nom de votre compte. Une base créée sous le nom mabase s'appelle en réalité moncompte_mabase, et c'est ce nom complet qu'il faut saisir.


Depuis un terminal :


mysql -h run1.hodi.host -P 3306 -u moncompte_monuser -p moncompte_mabase



Se connecter à PostgreSQL : le chiffrement est obligatoire


C'est le point qui piège tout le monde, alors autant le dire tout de suite : PostgreSQL n'accepte les connexions distantes que chiffrées en TLS. Un client qui se connecte en clair est refusé, même si votre adresse IP est correctement déclarée et votre mot de passe correct.


L'erreur ressemble à ceci, et l'indice se trouve tout à la fin de la ligne :


FATAL: no pg_hba.conf entry for host "203.0.113.10", user "moncompte_monuser",
database "moncompte_mabase", no encryption


no encryption signifie que votre client n'a pas négocié de TLS. Activez-le et la connexion passe.


Paramètre

Valeur

Hôte

le nom d'hôte de votre serveur, par exemple run1.hodi.host

Port

5432

Base

moncompte_mabase

Utilisateur

moncompte_monuser

Mot de passe

celui que vous avez défini dans cPanel

Mode SSL

require, idéalement verify-full


Connectez-vous toujours par le nom d'hôte du serveur, celui qui se termine par .hodi.host. Jamais par une adresse IP, ni par votre propre nom de domaine. Notre certificat est émis pour ce nom de serveur : verify-full, le mode qui vérifie réellement que vous parlez au bon serveur, ne fonctionne que si votre client s'y connecte par ce nom. Vous le trouverez dans cPanel, dans le panneau Informations sur le serveur.


Avec psql :


psql "host=run1.hodi.host port=5432 dbname=moncompte_mabase user=moncompte_monuser sslmode=verify-full"


Dans un client graphique (DBeaver, pgAdmin, TablePlus, DataGrip), les paramètres de connexion comportent un onglet SSL : cochez Use SSL et choisissez require ou verify-full.


Depuis votre code :


Node.js (pg)   ssl: { rejectUnauthorized: true }
Python psycopg.connect(..., sslmode="verify-full")
PHP (PDO) "pgsql:host=...;dbname=...;sslmode=verify-full"


Un dernier point utile : votre utilisateur PostgreSQL n'atteint que les bases de votre propre compte, et uniquement celles qui lui ont été attribuées dans cPanel.



Quand tout ceci ne sert à rien


Une application hébergée chez nous parle à sa base en local, via localhost. Elle n'a besoin d'aucun accès distant, et lui en donner un ne ferait qu'élargir la surface exposée pour rien.


De même, pour importer un dump, lancer une requête ou consulter une table de temps en temps, phpMyAdmin et phpPgAdmin sont disponibles directement dans cPanel, sans rien configurer.


L'accès distant sert à ce qu'ils ne savent pas faire : votre client de base de données sur votre machine, un outil de BI ou de reporting, une migration, une application externe.



Bonnes pratiques


  • Donnez à vos utilisateurs de base un mot de passe long et unique, différent de votre mot de passe cPanel.
  • Déclarez une IP fixe plutôt qu'une plage large dès que c'est possible.
  • Supprimez les hôtes que vous n'utilisez plus. On oublie facilement cette liste, et une vieille entrée reste valable.
  • Ne mettez jamais vos identifiants de base dans du code envoyé au navigateur.



Si cela ne fonctionne pas


Ce que vous voyez

Ce que cela veut dire en général

Timeout, ou connexion refusée

Votre IP n'est pas déclarée, ou elle a changé depuis

PostgreSQL : no encryption

Votre client n'utilise pas SSL, voir la section ci-dessus

PostgreSQL : échec de vérification du certificat

Vous vous connectez par adresse IP au lieu du nom d'hôte

password authentication failed

Il manque le préfixe du compte au nom d'utilisateur, moncompte_monuser

La base existe mais vous ne la voyez pas

L'utilisateur n'est pas rattaché à cette base dans cPanel


Toujours bloqué ? Ouvrez un ticket avec le message d'erreur exact et l'adresse IP depuis laquelle vous vous connectez, nous regarderons cela avec vous.

Mis à jour le : 07/09/2026

Cet article a-t-il répondu à vos questions ?

Partagez vos commentaires

Annuler

Merci !