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.
Déclarer votre adresse IP
- Dans cPanel, section Bases de données, ouvrez Remote Database Access (accès distant aux bases).
- Dans Ajouter un hôte d'accès, saisissez l'adresse IP publique de la machine qui se connectera.
- Ajoutez un commentaire (bureau, mon portable, serveur Metabase) pour la reconnaître plus tard.
- 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 |
Port |
|
Base |
|
Utilisateur |
|
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_mabaseSe 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 |
Port |
|
Base |
|
Utilisateur |
|
Mot de passe | celui que vous avez défini dans cPanel |
Mode SSL |
|
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 : | 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 |
| Il manque le préfixe du compte au nom d'utilisateur, |
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
Merci !