Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Installation
Installation Forum d'entraide sur les problèmes liés à l'installation de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2007, 15h23   #1
Nouveau Membre du Club
 
Inscription : août 2004
Messages : 40
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : août 2004
Messages : 40
Points : 26
Points : 26
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 :
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
Mordoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 15h35   #2
Rédactrice
 
Avatar de Fleur-Anne.Blain
 
Inscription : juillet 2006
Messages : 2 662
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 2 662
Points : 5 590
Points : 5 590
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 :
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 :
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 :
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.

Vous souhaitez contribuer aux rubriques Solutions d'entreprises ou BI, contactez-moi

Mes tutos
Fleur-Anne.Blain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 16h05   #3
Nouveau Membre du Club
 
Inscription : août 2004
Messages : 40
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : août 2004
Messages : 40
Points : 26
Points : 26
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 :
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.
Mordoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 16h09   #4
Rédactrice
 
Avatar de Fleur-Anne.Blain
 
Inscription : juillet 2006
Messages : 2 662
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 2 662
Points : 5 590
Points : 5 590
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 :
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.

Vous souhaitez contribuer aux rubriques Solutions d'entreprises ou BI, contactez-moi

Mes tutos
Fleur-Anne.Blain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 09h39   #5
Nouveau Membre du Club
 
Inscription : août 2004
Messages : 40
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : août 2004
Messages : 40
Points : 26
Points : 26
Merci à nouveau Anne,

En prenant votre code:
Code :
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 !
Mordoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 09h52   #6
Rédactrice
 
Avatar de Fleur-Anne.Blain
 
Inscription : juillet 2006
Messages : 2 662
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 2 662
Points : 5 590
Points : 5 590
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.

Vous souhaitez contribuer aux rubriques Solutions d'entreprises ou BI, contactez-moi

Mes tutos
Fleur-Anne.Blain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 15h37   #7
Nouveau Membre du Club
 
Inscription : août 2004
Messages : 40
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : août 2004
Messages : 40
Points : 26
Points : 26
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:

Citation:
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
Mordoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 15h37   #8
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
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 :
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 SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 13h57   #9
Nouveau Membre du Club
 
Inscription : août 2004
Messages : 40
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : août 2004
Messages : 40
Points : 26
Points : 26
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
Mordoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 18h24   #10
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
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 SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h02.


 
 
 
 
Partenaires

Hébergement Web