Bonsoir,

J'aimerais contrôler mes bdd avec Datagrip (by Jetbrain), j'entre mes infos de connexion, je tente un test de connexion j'obtient cette erreur :
Connection to BDD@addrIPserver failed.
null, message from server: "XXX.XXX.XXX.XXX' is not allowed to connect to this MySQL server"

pour se connecter à distance à MySQL il faut commenter la ligne "bind-address" dans la config, j'ai tout d'abord voulu tester en y mettant l'addr ip de mon serveur, j'ai obtenu la même erreur, j'ai donc commenté cette ligne.

Si vous avez déjà rencontré ce problème et que vous avez une solution je suis preneur.

PS : Pas testé avec Phpstorm mais ça doit être la même chose avec son module Db.
PS 1 : L'utilisateur que j'utilise pour la connexion possède logiquement des droits d'admin, et je n'utilise pas iptable donc pas besoin d'ouvrir les ports.

8 réponses


Huggy
Réponse acceptée

j'ai dit des co**ries,
c'est l'ip du client qu'il faut mettre
si ta machine cliente c'est l'ip 1.2.3.4 alors il faut créer sur le serveur MySQL un utilisateur toto@1.2.3.4
ton message indiquant que l'utilisateur n'est pas autorisé prouve que la connexion réseau fonctionne
je teste avec DataGrip
PS: ça fonctionne,
sous datagrip, pas la peine de rajouter le @xxxx , c'est rajouté automatiquement

Huggy
Réponse acceptée

Dans Host: tu mets l'ip du serveur Ok
c'est côté serveur qu'il faut créer un user xxx@% ou xxx@ipdelamachinecliente

CREATE USER toto@123.123.123.123 IDENTIFIED BY 'lemotdepasse';
GRANT ALL PRIVILEGES ON *.* TO toto@123.123.123.123 WITH GRANT OPTION;

où 123.123.123.123 est l'ip de la machine cliente
dans datagrip on met juste toto comme user, le serveur sait de quelle ip ça vient et utilise toto@123.123.123.123

Bonjour Mika445,
Si ton serveur MySQL est sur une machine différente et qu'il s'appelle xxx, tu dois créer un/des utilisateurs avec @xxx comme root@xxx
et tu dois leur donner des droits sur la base à laquelle tu veux accéder
par défaut si tu te connectes en tant que 'toto', MySQL comprend toto@localhost car dans 95% des cas mysqld est sur le serveur web.
tu peux aussi mettre l'adresse ip à la place du nom root@192.168.1.12 par exemple

Laznet
Auteur

Bonjour Huggy
C'est ce que j'ai fais :D, justement c'est encore plus bizarre

Laznet
Auteur

L'IP du PC pour 1.2.3.4

oui 1.2.3.4 c'est un exemple
On peut aussi créer des utilisateurs communs à toutes les machines en utilisant % (toto@% ou root@%)
mais c'est moins sécure

Laznet
Auteur

Sur PhpMyadmin j'ai créé un utlisateur root avec mon ip (trouvé grâce a ifconfig), dans datagrip j'ai fais ceci :

(là où XXX.XXX.XXX correspond a l'ip de ma machine).

Sauf que là j'obtient cette erreur :
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

C'est vraiment qu'avec l'IP du serveur que j'arrive a obtenir "Connection is not allowed".

Laznet
Auteur

Un grand merci a toi Huggy :D