Développement et bases de données

MySQL à distance

Vérifié le 6 min de lecture MySQL accès à distance

Un client de bases de données permet de se connecter à une base de données hébergée sur l'hébergement depuis votre ordinateur, sans avoir à travailler depuis cPanel ou phpMyAdmin.

Les paramètres de connexion à MySQL pour ce type d'application sont :

  • Serveur : le nom d'hôte du serveur, son IP ou un domaine qui pointe directement vers l'hébergement
  • Port : 3306
  • Utilisateur : l'utilisateur MySQL
  • Mot de passe : le mot de passe de l'utilisateur MySQL
  • Base de données : le nom de la base de données (sur laquelle l'utilisateur doit avoir des droits)

Une application hébergée sur le même compte doit utiliser localhost comme serveur MySQL et n'a pas besoin d'activer l'accès à distance. L'autorisation décrite ci-dessous n'est nécessaire que lorsque la connexion part d'un autre serveur, d'un bureau ou de votre propre ordinateur.

N'utilisez pas comme serveur un domaine qui pointe vers une autre plateforme ou qui est caché derrière un proxy comme Cloudflare : ce trafic n'est pas transmis au port 3306 de l'hébergement. Dans ce cas, utilisez le nom d'hôte du serveur ou son IP.

Autoriser une connexion MySQL à distance

Même si les paramètres sont corrects, le serveur refusera une connexion externe si son adresse d'origine n'est pas autorisée.

Pour permettre l'accès à distance, allez dans Remote Database Access dans cPanel et ajoutez l'IP depuis laquelle vous vous connectez. Dans les versions antérieures de cPanel, cette section s'appelait Remote MySQL.

Vérifiez ensuite que l'utilisateur MySQL est associé à la base de données et ne dispose que des droits dont il a besoin. Autoriser une IP permet à cette origine de tenter une connexion, mais ne remplace pas l'utilisateur et le mot de passe.

Peut-on fermer le port MySQL 3306 ?

Dans nos offres de cloud hosting, MySQL est un service géré commun au nœud et le pare-feu est configuré au niveau du serveur. C'est pourquoi il n'est pas possible de fermer le port 3306 pour un seul compte, de le changer ni d'appliquer une règle réseau personnalisée depuis cPanel.

La liste des origines autorisées dans Remote Database Access contrôle les accès que vous gérez depuis le compte. Le serveur peut comporter des autorisations ajoutées par l'administration : si vous voyez une entrée inconnue ou si elle réapparaît après sa suppression, contactez l'assistance. Le fait que le port réponde ne prouve pas qu'un utilisateur puisse s'authentifier ou accéder à une base.

Si la politique de sécurité de votre projet exige que le port ne soit pas accessible depuis Internet, un pare-feu dédié ou un contrôle complet de MySQL, il vous faudra une infrastructure administrée par vous-même, comme un VPS ou un serveur dédié. Hostsuar ne propose pas ces services actuellement ; vous pouvez consulter les différences entre un VPS et notre cloud hosting avant de choisir l'environnement.

Recommandations de sécurité

Autorisez uniquement l'IP publique exacte depuis laquelle vous allez vous connecter et supprimez les autorisations que vous n'utilisez plus. Si vous avez besoin d'une plage d'entreprise, vérifiez d'abord le format accepté par la version de MySQL et de cPanel : toutes n'acceptent pas la même notation. N'utilisez pas % : cela exposerait l'accès MySQL à des tentatives depuis n'importe quelle origine et laisserait le mot de passe comme seule barrière.

Si votre IP est dynamique ou si plusieurs ordinateurs doivent se connecter, passez d'abord par un VPN avec une IP de sortie fixe ou créez un tunnel SSH au lieu d'autoriser chaque ordinateur dans Remote Database Access. Utilisez en outre un utilisateur distinct pour chaque application ou personne, limité à la base de données et aux opérations strictement nécessaires, et supprimez l'autorisation à distance une fois le travail terminé.

Vérifier la connexion et protéger le trafic

Autoriser une IP ne chiffre pas la connexion. Utilisez TLS avec vérification du certificat lorsque le serveur et votre client le permettent, ou le tunnel SSH pour MySQL.

En cas de timeout, vérifiez la sortie réseau, l'hôte et l'IP publique depuis laquelle vous vous connectez. Si Access denied apparaît, vérifiez le nom complet de l'utilisateur, son mot de passe et l'autorisation d'origine. Si la connexion réussit mais que la base n'apparaît pas, vérifiez l'association et les privilèges dans cPanel. N'élargissez pas l'autorisation à % pour résoudre une erreur d'identifiants.

Cela peut aussi vous aider

Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.