connexion à distance base sql

connexion à distance base sql - SQL/NoSQL - Programmation

Marsh Posté le 05-01-2006 à 10:20:25    

bonjour,  
 
J'utilise une base de données mysql (easyphp) et je stocke les infos d'un fichier xml à l'aide d'une servlet.  
 
 
ci dessous mon code:  
 
String username = "root";  
String password = "";  
String URL = "jdbc:mysql://localhost:3306/collecte?autoReconnect=true";  
 
try{  
Class.forName("com.mysql.jdbc.Driver" ).newInstance();  
Connection con = DriverManager.getConnection(URL, username, password);  
Statement st= con.createStatement();  
 
 
La connexion s'établit sans probleme.  
 
Maintenant je souhaite me connecter à partir d'un autre Pc ce trouvant sur le LAN. Dans ma servlet, je modifie donc dans l'URL "localhost" par l'adresse IP du serveur.  
Au moment de la connexion, une exception est générée.  
Pourtant sans lancer le programme et en tapant dans l'adresse IP/mysql dans l'URL de mon navigateur, j'arrive bien à me connecter à la base de données.  
 
Je ne vois vraiment pas l'erreur.  
 
Merci de m'éclairer.

Reply

Marsh Posté le 05-01-2006 à 10:20:25   

Reply

Marsh Posté le 05-01-2006 à 10:37:43    

ce quoi l'exception qui est lévée???


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
Reply

Marsh Posté le 05-01-2006 à 10:46:11    

C'est se connecter à distance sur une base mysql en java.
Ca marche en local, mais pas à distance(dans mon prog java), bien que justement quand on tente de se connecter à distance dans une page web la connexion à la base de données est effectuée.
 
De plus si on utilise une base firebird, ce problème n'a pas lieu

Reply

Marsh Posté le 05-01-2006 à 13:07:51    

Une servlet, sais-tu exactement les propriétés d'un servlet?
Celle-ci est instanciée une et une seul fois pour tous les clients qui vont s'y connecté. Donc elle est local au serveur Web. Jusque la c'est clair. Donc si cette servlet doit se connecté à mysql, il faut savoir ou est cette base. Si elle est sur la même machine, la servlet accède en localhost à cette base de donnée. Si la base est sur une autre machine, il faut dans les configs mysql attribué le droit d'accéder à la base de donnée à distance.
 
Voila avec ça tu devrais pouvoir te débrouiller

Reply

Marsh Posté le 06-01-2006 à 10:49:03    

cedric12 a écrit :

bonjour,  
 
J'utilise une base de données mysql (easyphp) et je stocke les infos d'un fichier xml à l'aide d'une servlet.  
 
 
ci dessous mon code:  
 
String username = "root";  
String password = "";  
String URL = "jdbc:mysql://localhost:3306/collecte?autoReconnect=true";  
 
try{  
Class.forName("com.mysql.jdbc.Driver" ).newInstance();  
Connection con = DriverManager.getConnection(URL, username, password);  
Statement st= con.createStatement();  
 
 
La connexion s'établit sans probleme.  
 
Maintenant je souhaite me connecter à partir d'un autre Pc ce trouvant sur le LAN. Dans ma servlet, je modifie donc dans l'URL "localhost" par l'adresse IP du serveur.  
Au moment de la connexion, une exception est générée.  
Pourtant sans lancer le programme et en tapant dans l'adresse IP/mysql dans l'URL de mon navigateur, j'arrive bien à me connecter à la base de données.  
 
Je ne vois vraiment pas l'erreur.  
 
Merci de m'éclairer.


 
 
Mysql fonctionne par defaut en socket. Ce qui ne permet la connexion par des outils en local. Pour pouvoir ouvrir une connexion à distance, il faut passer mysql en connexion par TCP/IP. Maintenant je te renvoie à la doc. je ne l'ai jamais fait.
 
Faut distinguer une connexion à distance d'un acces par le web. PhpMyAdmin fonctionne en local et te permet d'interagir avec la base à distance. Mais ca reste du local.


---------------
MZP est de retour
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed