Bonjour,
J'ai mis en place un serveur mysql sur mon VPS, or je n'arrive pas à me connecter à cette base depuis l'extérieur. Le port 3306 est bien ouvert, j'ai donné des droits suffisants, je ne comprend donc pas..
J'utilise Navicat pour me connecter et je souhaiterait également connecter mon site à la base de données du VPS.
Je sais réaliser ça en PHP mais lorsque j'utilise l'adresse IP du VPS en hôte, celui-ci ne se connecte pas et émet une erreur.
Je sollicite donc votre aide sur ce point car ayant travaillé dessus plusieurs jours, à ce stade je bloque.
Cordialement
Accès externe base de données
Related questions
- Perte de mot de passe
32492
26.05.2023 13:36
- Comment configurer/utiliser un SMTP depuis un VPS ?
32287
07.10.2019 10:49
- Je connais que le mutu et besoin de node js
30448
14.04.2017 13:34
- Envoi Email via SMTP (port 587) sur VPS Pro1
28031
27.01.2017 10:02
- [résolu] Serveur Mysql - hôte inconnu
27812
19.01.2017 16:21
- Qu'est-ce vcore?
27524
06.01.2017 19:20
- Mon VPS à Timed Out
26203
15.03.2017 22:50
- Délai de livraison VPS
25958
11.07.2018 15:15
- Problème avec statisitique Plesk
24744
29.03.2017 07:44
Bonjour,
Pour connecter le site il faut utiliser localhost ou 127.0.0.1 et pas l'IP publique.
Pour ce qui est de l'accès externe, Vous avez bien configuré le SGBD pour qu'il écoute sur l'IP et non en local ?
Cordialement, janus57
Le site n'est pas hébergé chez ovh, je ne peux donc pas mettre localhost. Et je n'arrive pas à modifier le bind-address de mysql, je ne vois pas cette ligne dans my.cnf
Tout simplement ajouter la ligne :
bind-address = 0.0.0.0
Attention, par défaut la communication mysql se fait en clair, sans ssl....
Il est vivement recommandé de mettre en place un vpn pour les connexions à MySQL histoire de ne pas laisser le port du service ouvert sur le web, ou à minima de configurer les connexions avec SSL.
Dans tous les cas il faut vérifier si le port 3306 est bien accessible depuis l'extérieur (un petit nmap -p 3306 fera l'affaire.
Ensuite vérifier les autorisations de connexion à MySQL (champ host de l'user).
J'ai bien ajouté bind-address = 0.0.0.0 dans /etc/mysql/mysql.conf.d/mysqld.cnf (je suis sous Ubuntu)
Et le nmap donne
Starting Nmap 7.60 ( https://nmap.org ) at 2018-07-18 17:52 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
PORT STATE SERVICE
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.30 seconds
Et pourtant cela ne fonctionne toujours pas :/
Hum quelle est l'erreur exacte lors de la tentative de connexion ?
l'user sql utilisé est bien configuré pour autoriser les connexions distantes ?
On dirait que vous avez effectué le `nmap` depuis le même serveur pour localhost donc ça ne dit pas si MySQL écoute sur l'interface réseau connectée à Internet (pour les connexions depuis l'extérieur).
Question bête au cas où : vous avez bien redémarré MySQL après avoir modifié le fichier de configuration ?
Et que donne un `netstat -tlpen` ?
Avec la commande, j'obtiens ça :
netstat -tlpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 8489 1016/sshd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 106 12908 3077/mysqld
tcp6 0 0 :::22 :::* LISTEN 0 8491 1016/sshd
Donc en effet il ne voit visiblement pas le port 3306, comment puis-je l'ajouter ?
Mais lorsque j'essaye de me connecter avec Navicat, j'obtiens cette erreur
Si c'est bon, la ligne d'avant indique que MySQL écoute sur toutes les interfaces réseau (adresse 0.0.0.0).
Quant à l'erreur Navicat je ne suis pas expert MySQL mais on dirait plutôt que c'est l'utilisateur avec lequel vous essayez de vous connecter qui n'a pas les privilèges nécessaires au niveau de MySQL lui-même (peut-être qu'il n'a les droits pour se connecter que depuis localhost justement ?).
En effet j'ai juste eu à configurer un utilisateur. Je suis reparti d'un nouvel OS Ubuntu vierge et ça fonctionne désormais, merci à vous !