IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Connexion impossible depuis des clients


Sujet :

JDBC Java

  1. #1
    Membre régulier Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Points : 108
    Points
    108
    Par défaut Connexion impossible depuis des clients
    salut.
    je travail depuis un moment sur une application en java / mysql.
    et normalement il est possible que plusieurs clients se connectent avec cette même application à une base de données Mysql sur un serveur.

    Avant je faisais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                  Class.forName("com.mysql.jdbc.Driver");
         	      String url = "jdbc:mysql://localhost:3306/cabine";
         	      con = DriverManager.getConnection(url,"root", "");
    mais il est clair que je dois changer l'url pour que l'application soit portable !
    j'ai commencé par faire un essai avec deux pc : un serveur et un client mais bien evidement ca marche pas parceque je dois changer le localhost par ne nom de serveur ......mais dans ce cas ca marche plus chez le serveur !

    j'espere que mon probleme est clair !
    merci

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Le serveur doit accepter, meme localement, qu'on l'appelle par son nom. Si c'est pas le cas, c'est qu'il y a un problème de configuration qui n'est pas lié à java.

    Regarde aussi du coté du service mysql, quelles sont les règles par rapport à l'authentification sur la db? Accepte-t-il le root de n'importe ou, ou seulement depuis certaines machines. Au fait, root pour les application distribuée qui embarquent leur mot de passe, çà sent le mauvais plan sécurité, il vaut mieux créer un account par client et leur demander de s'authentifier avec cet account.

  3. #3
    Membre régulier Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Points : 108
    Points
    108
    Par défaut
    salut tchize_.
    au fait je crois que cela vient de Mysql (j'utilise pour le moment wamp pour benificier de l'interface de phpmyadmin ) puisque je dois spécifier tous les utilisateur qui peuvent accéder à la base ainsi que le nom de leur hotes repective .

    mais c'est bizar puisque en changeant le localhost par le nom du serveur local comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String url = "jdbc:mysql://peter:3306/cabine";
    j'obtient le message suivant :
    message from server: "Host '192.168.1.3' is not allowed to connect to this MySQL server

    je signale que 192.168.1.3 est bien l'adresse ip de ma machine (le serveur donc) !!

    mais je me pose la question suivante :

    j'ai pu se connecter a la base depuis l'autre pc (client) avec toad.....
    est ce que apres cette connexion le localhost:3306/cabine ne permet pas d'acceder à la base cabine ?

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    alors, localhost c'est 127.0.0.1, alors que peter c'est 192.168.1.3. Quand tu est sur peter et que tu accède à "localhost", le server voit un accès pour username@localhost sur la base cabine, et vérifie les droit de username@localhost sur cabine. Quand tu accède à "peter" depuis la même machine, le serveur mysql voit username@192.168.1.3 qui essaie de se connecter à cabine, et vérifie les droits en question, qui sont totalement différents et non liés!. Il faut donc aller dans la gestion des droits d'accès de ta db et donner les droit d'accès pour usename@192.168.1.3

  5. #5
    Membre régulier Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Points : 108
    Points
    108
    Par défaut
    je crois que je ne comprend pas tout la !!
    je croyais que localhost est le nom de la machine locale et qui pour moi est la meme chose que peter !

    Quand tu accède à "peter" depuis la même machine
    comment ca ? peter est le nom de ma machine ...pour expliquer un peu quand je tape hostname dans le cmd de windows j'ai peter comme resultat !

    cela dit j'ai ajouté les droits au 192.186.1.3 et je peux placer peter dans l'url maintenant ....et par suite j'ai pu acceder a la base meme depuis le pc client.

    Mais l'application n'est pas du tout portable dans ce cas !
    si je la place dans un autre serveur ca va plus marcher......
    il faut que je trouve un moyen de lire l'adresse ip du serveur automatiquement je pense !
    je sais que je pose trop de questions
    merci

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    je suis plus sur de comprendre ton problème. Au départ, si ma compréhension est bonne, ton problème était que, si tu mettait peter dans l'url, tout les clients avaient accès, sauf depuis peter qui lui n'avais accès qu'avec localhost. Problème si je suis toujours bien, maintenant résolu, c'était un problème de droit d'accès mysql.

    Tu dois simplement, pour chaque account sur ta db mysql, autoriser les accès depuis tout ton réseau, comme çà, pas de problème.

    Et comme dit, "localhost" et hostname ne sont pas la meme chose. Une machine a toujours une addresse localhost, dont l'ip est 127.0.0.1 et, souvent, aussi une addresse liée à sont hostname (exemple 192.168.1.69). Vois 127.0.0.1 comme une carte réseau virtuelle alors que 192.168.1.69 est une carté réseau réelle (c'est simplifié à l'extrème mais l'idée est là)

  7. #7
    Membre régulier Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Points : 108
    Points
    108
    Par défaut
    oui t'as raison au fait ! j'aurais du expliquer un peu plus !
    voila j'avais disons deux contraintes :

    * tous les client peuvent acceder a la base du serveur (chose faite)
    * je veux que l'application soit portable ( parceque je ne vais pas la laisser tourner sur mon pc ) et jusqu'a maintenant c'est pas le cas puisque il suffit que je la place dans une machine dont le hostname ne soit pas peter pour que ca marche plus !
    voila

Discussions similaires

  1. Connexion impossible depuis Eclipse mais ok depuis le shell
    Par bedomon dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 30/08/2013, 12h03
  2. [ODBC] ODBC - Connexion impossible depuis Linux
    Par pepsi33 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/04/2013, 23h03
  3. [SSMS] Connexion instance depuis poste client.
    Par GarsDuCalvados dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 11/10/2011, 10h04
  4. [Oracle net / 10g] connexion impossible depuis sqlplus
    Par rvfranck dans le forum Connexions aux bases de données
    Réponses: 10
    Dernier message: 04/01/2008, 09h54
  5. Réponses: 6
    Dernier message: 28/11/2005, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo