moooonaaaa
Messages postés56Date d'inscriptionjeudi 26 juillet 2007StatutMembreDernière intervention29 novembre 2010
-
21 mai 2008 à 08:54
moooonaaaa
Messages postés56Date d'inscriptionjeudi 26 juillet 2007StatutMembreDernière intervention29 novembre 2010
-
22 mai 2008 à 13:43
salem,
j'ai un probléme dans l'exécution d'un code java
voila ce que je fais et les messages d'erreur qui me paraissent.
je lance tout d'abord la commande suivante" >javac testsql1.java
cette commande se passe bien.
puis je fait >java testsql1
le msg d'erreur suivant me parait:"echec pilote : java.lang.ClassNotFoundException: com.mysql.jdbc.Driver"
je refait la cmd suivante:"#export CLASSPATH=${CLASSPATH}:/usr/lib/mysql-connector-java-5.0.7-bin.jar"
et je relance >java testsql1
le msg suivant me parait:"echec pilote :
com.mysql.jdbc.CommunicationsException: Communications link failure due
to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.ConnectException
MESSAGE: Connection refused
STACKTRACE:
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.(Socket.java:366)
at java.net.Socket.(Socket.java:208)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2744)
at com.mysql.jdbc.Connection.(Connection.java:1553)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at testsql1.main(testsql1.java:27)
** END NESTED EXCEPTION **
Last packet sent to the server was 1 ms ago.".
j'essai de modifer les droits d'accées de tous le contenu du répertoire /usr mais en vain
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 21 mai 2008 à 19:24
Salut:
Supposons que le pilote JDBC s'appelle mysqldriver.jar.
Comme tu travailles avec un terminal il faut alors voir les deux cas possibles.
1. Sous Windows:
javac -classpath mysqldriver.jar Program.java
# Le séparateur de la variable PATH sous Windows est (;)
# Ne pas oublier d'ajouter le répertoire courant (.) à la variable classpath
java -classpath .;mysqldriver.jar Program
2. Sous Linux:
javac -classpath mysqldriver.jar Program.java
# Le séparateur de la variable PATH sous Linux est (:)
# Ne pas oublier d'ajouter le répertoire courant (.) à la variable classpath
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.(Socket.java:366)
at java.net.Socket.(Socket.java:208)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2744)
at com.mysql.jdbc.Connection.(Connection.java:1553)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at testsql1.main(testsql1.java:27)
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 21 mai 2008 à 21:48
Salut:
Ce qui est sûr est qu'on a réussit à fixer la première exception (ClassNotFoundException).
Maintenant, il apparaît qu'on a une nouvelle exception (ConnectException), lors de l'établissement de la connexion.
Donc il y a un problème quelque part lorsque ton programme essaye de se connecter via la socket à une adresse distante.
Typiquement ce problème est dû au fait que la connexion a était réfusée par la machine distante parcequ'il n'y a aucun processus qui est en train d'écouter les connexions entrantes.
Ce raisonnement nous mène à ces questions:
Est ce que le serveur de MySQL est lancé?
Si le serveur de MySQL est sur une machine distante existe il un proxy?
moooonaaaa
Messages postés56Date d'inscriptionjeudi 26 juillet 2007StatutMembreDernière intervention29 novembre 2010 21 mai 2008 à 22:25
salem,
le serveur mysql est lancé et travaille bien.de plus je travaille sur la même machine donc j'ai pas une machine distante.
j'ai essayé de connecter à ce base avec gcc sous linux et je trouve aucun pb.
pour cela je pense qu'il n'est pas un pb de firewall ou de proxy.
SVP aidez moi.
mouna
moooonaaaa
Messages postés56Date d'inscriptionjeudi 26 juillet 2007StatutMembreDernière intervention29 novembre 2010 21 mai 2008 à 22:48
Salem,
voila mon code:
import java.sql.*;
//import java.sql.Driver;
class mon1{
public static void main(String[] args){
//Nom de mon pilote
String pilote = "com.mysql.jdbc.Driver";
try{
//Chargement de mon pilote
System.out.println("aller au connexion");
Class.forName(pilote).newInstance();
System.out.println("connexion terminer");
//Connexion à ma base mysql avec mon login et mot de passe ( à vous de changer cela)
Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost/essai","root","");
System.out.println("bon connexion");
//Création de mon statement qui va me permettre d'executer mes requetes
Statement instruction = connexion.createStatement();
System.out.println("bon statement");
//Ma table s'appelle coffees et tout ce qui reste dépend d'elle
//Vous devez changer certaines infos comme le nom de la table et celui des colonnes
ResultSet resultat = instruction.executeQuery("SELECT * FROM erreur");
avec des tests je trouve que le programme se plante dans cette instruction:
Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost/essai","root","");
je modifie cette ligne:
Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost","root","");
il m'affiche le meme message d'erreur
puis je modifie une autre fois:
Connection connexion = DriverManager.getConnection("jdbc:mysql:","root",""); ce message me parait:
echec pilote : java.sql.SQLException: No suitable driver
mouna
Le port par défaut du serveur MySQL est le 3306. Est ce que tu n'as pas changé ce numéro de port lors de l'installation?
Si oui, il faudra alors préciser ce nouveau numéro de port:
jdbc:mysql://[host][:port]/[database]
moooonaaaa
Messages postés56Date d'inscriptionjeudi 26 juillet 2007StatutMembreDernière intervention29 novembre 2010 22 mai 2008 à 00:58
salem,
je vous remecie beaucoup une autre fois à votre aide.
je fais mysql -help et je trouve une table qui contient les valeurs suivants:
Variables (--variable-name=value)
and boolean options {FALSE|TRUE} Value (after reading options)
--------------------------------- -----------------------------
auto-rehash TRUE
character-sets-dir (No default value)
default-character-set latin1
compress FALSE
database (No default value)
delimiter ;
vertical FALSE
force FALSE
named-commands FALSE
local-infile FALSE
no-beep FALSE
host (No default value)
html FALSE
xml FALSE
line-numbers TRUE
unbuffered FALSE
column-names TRUE
sigint-ignore FALSE
port 0
prompt mysql>
quick FALSE
raw FALSE
reconnect TRUE
socket (No default value)
ssl FALSE
ssl-ca (No default value)
ssl-capath (No default value)
ssl-cert (No default value)
ssl-cipher (No default value)
ssl-key (No default value)
ssl-verify-server-cert FALSE
table FALSE
debug-info FALSE
user (No default value)
safe-updates FALSE
i-am-a-dummy FALSE
connect_timeout 0
max_allowed_packet 16777216
net_buffer_length 16384
select_limit 1000
max_join_size 1000000
secure-auth FALSE
show-warnings FALSE
bon enfin j'essai de mettre le numéro de port 0 et il ne marche pas puis j'essai de le mettre 3306 mais aussi il ne marche pas.
SVP j'ai besoin de votre aide.
moooonaaaa
Messages postés56Date d'inscriptionjeudi 26 juillet 2007StatutMembreDernière intervention29 novembre 2010 22 mai 2008 à 01:14
salem,
est ce qu'il peut etre un probléme de compatibilité des versions
j'ai utilisé la version java suivante:
Citation:
java version "1.5.0_12"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04)
Java HotSpot(TM) Server VM (build 1.5.0_12-b04, mixed mode)
et la version mysql suivant:
Citation:
mysql Ver 14.12 Distrib 5.0.45, for suse-linux-gnu (i686) using readline 5.2
et la version mysql-connector est:
Citation:
mysql-connector-java-5.0.7-bin.jar
ces versions sont ils compatibles
moooonaaaa
Messages postés56Date d'inscriptionjeudi 26 juillet 2007StatutMembreDernière intervention29 novembre 2010 22 mai 2008 à 11:09
salem,
je lance la commande suivante:
Citation:
nmap 127.0.0.1 -p 3306
et je trouve comme résultat
Citation:
Starting Nmap 4.20 ( http://insecure.org ) at 2008-05-22 10:51 CEST
Interesting ports on localhost (127.0.0.1):
PORT STATE SERVICE
3306/tcp closed mysql
Nmap finished: 1 IP address (1 host up) scanned in 0.043 seconds
pour cela je veux ouvrir le port mais je sais pas comment.
j'ai lancé mysql .
mais le port reste fermé
SVP aidez-moi c'est urgent
moooonaaaa
Messages postés56Date d'inscriptionjeudi 26 juillet 2007StatutMembreDernière intervention29 novembre 2010 22 mai 2008 à 13:43
Salem,
j'ai enfin résoud mon probléme.
le probléme est un probléme de port(port 3306 est fermé).
pour l'ouvrir il suffit que le fichier my.cnf(se trouvant généralement sous le répertoire /etc) contient le message au dessous: