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

Installation MySQL Discussion :

[jdbc:mysql]Connexion à un serveur distant


Sujet :

Installation MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2004
    Messages : 40
    Points : 39
    Points
    39
    Par défaut [jdbc:mysql]Connexion à un serveur distant
    Bonjour à tous,

    je reprends la programmation et j'aimerais à partir d'un code en Java me connecter à mon serveur Web Apache/MySQL/php distant...

    Bon je sais, je ne suis pas dans le bon forum mais mon soucis vient au moment de la connexion via le JAR 'mysql-connector-java-3.1.14-bin.jar'

    Donc à partir de ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    //Connexion à la base de données par l url, le login, le mot de passe
    connexion=DriverManager.getConnection("jdbc:mysql://www.jouets.noel.fr/table,identifiant,motdepasse");
    Je ne comprends pas comment indiquer une URL vers mon serveur du type www.jouets.noel.fr (par exemple ) car ca ne fonctionne pas...

    Car je souhaite vraiment me connecter la base de données user par défaut de MySql pour faire une identification d'utilisateur...

    Merci de votre aide,
    bonne journée

  2. #2
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    en meme temps avec des " la ou il faut pas et sans le port..par defaut 3306 mais il se peut qu'il soit différent

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String url ="jdbc:mysql://localhost:3306/mysql";
     
    connexion=DriverManager.getConnection("jdbc:mysql://www.jouets.noel.fr:3306/table:3306",identifiant,motdepasse);
    j'espère que tu as bien initialisé tes variables login et pass, tu pourrais aussi le faire pour ton url, puis passer ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Connection cx = DriverManager.getConnection(url,login,mdp);



    Citation Envoyé par Mordoum Voir le message
    Bonjour à tous,

    je reprends la programmation et j'aimerais à partir d'un code en Java me connecter à mon serveur Web Apache/MySQL/php distant...

    Bon je sais, je ne suis pas dans le bon forum mais mon soucis vient au moment de la connexion via le JAR 'mysql-connector-java-3.1.14-bin.jar'

    Donc à partir de ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    //Connexion à la base de données par l url, le login, le mot de passe
    connexion=DriverManager.getConnection("jdbc:mysql://www.jouets.noel.fr/table,identifiant,motdepasse");
    Je ne comprends pas comment indiquer une URL vers mon serveur du type www.jouets.noel.fr (par exemple ) car ca ne fonctionne pas...

    Car je souhaite vraiment me connecter la base de données user par défaut de MySql pour faire une identification d'utilisateur...

    Merci de votre aide,
    bonne journée
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2004
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Merci Anne,

    Y'a du mieux....

    En mettant ceci (j'ai vérifié le numéro de port sur mon site, c'est bien 3306):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    ...
    Class.forName("com.mysql.jdbc.Driver");
     
    connexion=DriverManager.getConnection(jdbc:mysql://www.jouets.noel.fr:3306/mysql:3306,login,pass);
    ...
    J'obtient un message différent (en utilisant la doc fourni par le site MySQL):

    SQLException: null, message from server: "Host 'le nom de mon PC' is not allowed to connect to this MySQL server"
    SQLState: HY000
    VendorError: 1130

    Donc il ne prends pas en compte le login et mot de passe fourni lors du getConnection....

    Vous pouvez me confirmer un truc: à partir d'un poste local avec une connexion internet et un petit prog Java, je peux me connecter sur un serveur distant ? J'suis perdu.....

    Merci.

  4. #4
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    AHHHHHHHH j'ai fait une boulette le port n'est à mettre qu'une fois comme dans l'exemple ci-dessous..pardon

    eum...c'est Fleur-Anne

    poru ta réponse je suis tentée de dire bien évidemment et heureusement

    un exemple avec java et mysql:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    public class test{
     
    	String url;
    	  String login;
    	  String passwd;
    	  Connection connexion;
    	  Statement st ;
          ResultSet rs ;
          PreparedStatement pst;
     
    	public JDBC(String url, String login, String passwd) {
    		this.url = url;
    		this.login = login;
    		this.passwd = passwd;
    		this.connexion=null;
    		this.st=null;
    		this.rs=null;
    		this.pst=null;
    	}
     
    	public void connecterBase()
    	{
     
     
    		  System.out.println("Connection au driver JDBC");
          try{
        	  Class.forName("com.mysql.jdbc.Driver");
        	  System.out.println("Driver com.mysql.jdbc.Driver chargé");
     
    		  connexion =  DriverManager.getConnection(url, login, passwd );
    		  System.out.println("Driver com.mysql.jdbc.Connexion effectue");
     
    		  }catch (Exception e){
    			  System.err.println( "Erreur lors du connexion de la base" );
    		      System.exit(1);
    		    }
    	}
     
    avec pour valeur
     
    			String url="jdbc:mysql://monip:3306/ma_base";
    			String login="login";
    			String passwd="pass";
    si ca peut aider...

    Citation Envoyé par Mordoum Voir le message
    Merci Anne,

    Vous pouvez me confirmer un truc: à partir d'un poste local avec une connexion internet et un petit prog Java, je peux me connecter sur un serveur distant ? J'suis perdu.....

    Merci.
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2004
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Merci à nouveau Anne,

    En prenant votre code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    //import java.io.PrintWriter;
    import java.sql.*;
     
    public class test {
        public static void main (String[] args) {
            //Connexion à un serveur Wamp sous Windows 2003 Server
            String url="jdbc:mysql://jouets.noel.fr:3306/mysql";
            String login="login_dans_la_BDD_mysql/table_user";
            String passwd="pass";
            Connection connexion;
     
            System.out.println ("Connexion au driver JDBC...");
            try{
                //DriverManager.setLogWriter(new PrintWriter(System.out));
                Class.forName ("com.mysql.jdbc.Driver");
                System.out.println ("Driver com.mysql.jdbc.Driver chargé");
                connexion =  DriverManager.getConnection (url, login, passwd );
                System.out.println ("Driver com.mysql.jdbc.Connection effectué");
     
            }catch (Exception ex){
                System.out.println ("ERREUR: " + ex.getMessage ());
                System.exit (1);
            }
        }
    }
    Je l'ai simplifié au maximum et toujours même message:

    ERREUR: null, message from server: "Host 'LENOMDEMONPC' is not allowed to connect to this MySQL server"

    Je ne comprends pas pourquoi il prends le nom de mon PC alors que je définis le login et le pass... J'utilise NetBeans 5.5, j'ai mis la libraire jdbc dans mon projet. Je suis dans un environnement universitaire simple sous XP Pro SP2...

    Egalement lorsque l'on indique l'URL, peux-ton indiquer un truc comme http://jouets.noel.fr pour aller me connecter sur un serveur externe ???

    Merci et bon week end !

  6. #6
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    Très sincèrement aucune idée j'ai toujours mis des adresses IP.

    Citation Envoyé par Mordoum Voir le message

    ERREUR: null, message from server: "Host 'LENOMDEMONPC' is not allowed to connect to this MySQL server"

    Je ne comprends pas pourquoi il prends le nom de mon PC alors que je définis le login et le pass... J'utilise NetBeans 5.5, j'ai mis la libraire jdbc dans mon projet. Je suis dans un environnement universitaire simple sous XP Pro SP2...

    Egalement lorsque l'on indique l'URL, peux-ton indiquer un truc comme http://jouets.noel.fr pour aller me connecter sur un serveur externe ???

    Merci et bon week end !
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2004
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Re(bonjour) Fleur-Anne,

    J'ai peut-être un début de réponse à mon message:

    "Host 'LE_NOM_DE_MON_PC' is not allowed to connect to this MySQL server"

    Sur le site MySQL, à la page:

    http://dev.mysql.com/doc/refman/5.0/...ss-denied.html

    J'ai trouvé ça:

    Si vous obtenez l'erreur suivante en essayant de vous connecter à partir d'un hôte différent de celui sur lequel est placé le serveur, c'est qu'il n'y a pas d'enregistrement dans la table user qui correspond à cet hôte :

    Host ... is not allowed to connect to this MySQL server

    Vous pouvez corriger ce problème en configurant un compte avec la combinaison hôte / nom d'utilisateur que vous utilisez lors de la connexion.

    Si vous ne connaissez ni l'IP ni le nom d'hôte à partir duquel vous essayez de vous connecter, vous devez créer une entrée avec '%' dans la colonne Host dans la table user et redémarrer mysqld avec l'option --log sur la machine serveur. Après avoir essayé à nouveau de vous connecter à partir de la machine cliente, les informations contenues dans le log de MySQL vous apprendront comment vous vous êtes vraiment connectés. (Remplacez alors l'entrée de la table user contenant '%' avec le nom d'hôte qui apparaît dans le log. Sinon, vous aurez un système non-sécurisé.)

    Une autre raison pour cette erreur sous Linux est que vous utilisez une version binaire de MySQL qui est compilée avec une version de glibc différente de celle que vous utilisez. Dans ce cas, vous devez soit mettre à jour votre système d'exploitation et sa bibliothèque glibc, soit télécharger les sources de MySQL et les compiler vous-même. Un RPM de sources est normalement facile à compiler et installer, cela ne devrait donc pas vous poser de gros problèmes.
    Ce qui voudrait dire que je dois référencer dans la BDD chaque utilisateur où je déploie le prog. Java ... .. .. . . .. ????

    Mais bon, c'est bientôt Noël....

    Michael

  8. #8
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 280
    Points : 11 736
    Points
    11 736
    Par défaut
    Citation Envoyé par Mordoum Voir le message
    Je ne comprends pas pourquoi il prends le nom de mon PC alors que je définis le login et le pass... J'utilise NetBeans 5.5, j'ai mis la libraire jdbc dans mon projet. Je suis dans un environnement universitaire simple sous XP Pro SP2...
    Pour MySQL, un utilisateur est défini par DEUX éléments :
    - son login
    - l'ordinateur d'où il tente de se connecter (appelé le "host", mais il faut comprendre qu'il s'agit de l'hôte du client et nom du serveur).

    Si tu as la main sur la création des utilisateurs, il faut que tu crées un utilisateur autorisé à se connecter de n'importe quelle machine (@'%'). Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE USER toto@'%' ;
    GRANT ALL ON *.* TO toto@'%' ;
    Si c'est un hébergeur extérieur, la plupart interdisent les connexions directes et ne permettent que la connexion depuis leur serveur web, par ex. à travers des pages PHP hébergées chez eux ou à travers un phpMyAdmin.
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2004
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Merci Antoun,

    c'était bien ça ! J'ai la main sur le serveur (pour le moment) car il est hébergé en interne... Donc cette solution est temporaire...

    Alors dans un cas chez un hébergeur externe, comment faire une identification à partir d'un prog Java ? En ouvrant un flux d'un fichier PHP (sur le serveur) ?

    Si vous avez des pistes, liens, je suis preneur !

    Encore merci à tous, à Fleur-Anne,
    Bon courage,
    Michael

  10. #10
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 280
    Points : 11 736
    Points
    11 736
    Par défaut
    Citation Envoyé par Mordoum Voir le message
    Alors dans un cas chez un hébergeur externe, comment faire une identification à partir d'un prog Java ? En ouvrant un flux d'un fichier PHP (sur le serveur) ?
    Oui. En général, les hébergeurs n'acceptent les connexions que depuis leur serveur web et pas les connexions directes.
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connexion ODBC Mysql sur un serveur distant
    Par laulau49 dans le forum MySQL
    Réponses: 9
    Dernier message: 25/01/2010, 08h27
  2. Connexion à un serveur distant
    Par fofovi72 dans le forum Langage
    Réponses: 4
    Dernier message: 08/10/2005, 17h37
  3. [JDBC][MySQL] Connexion à la base de données
    Par El Saigneur dans le forum JDBC
    Réponses: 8
    Dernier message: 04/08/2005, 13h52
  4. [API mySQL] - Connexion à un serveur distant possible ?
    Par PyRoFlo dans le forum Bases de données
    Réponses: 5
    Dernier message: 10/02/2005, 22h23
  5. [ODBC] connexion à un serveur distant
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 16/11/2004, 12h32

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