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 :

java.sql.SQLException: No suitable driver found


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2015
    Messages : 80
    Points : 45
    Points
    45
    Par défaut java.sql.SQLException: No suitable driver found
    Bonjour à tous !

    J'ai cherché beaucoup d'aide sur mon problème mais je n'ai pas réussi à le résoudre.

    Ce n'est pas la première fois que je fais de la connection sql via java, mais c'est la première fois que j'essaye de le faire sur un serveur distant

    En fait j'ai un Raspberry sur lequel j'ai hebergé un serveur sql.

    Dans une servlet, j'utilise JDBC qui se connecte aux tables de mon rasp en localhost : ça fonctionne.

    Maintenant j'essaye de faire un programme qui se connecte, depuis mon pc à mon rasp, en java via jdbc avec le bout de code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Connection co;
    PreparedStatement ps;
     
    	public DB() {
    		try {
    			Class.forName("org.postgresql.Driver");
    			co = DriverManager.getConnection("jdbc:postgresql://192.168.1.47", "xxxxxxxxx", "xxxxxxxxxx");
    		}
    		catch (ClassNotFoundException e) {System.out.println(e);}
    		catch (SQLException e) {System.out.println(e);}
    	}
    192.168.1.47 étant l'ip locale de mon rasp, si je veux afficher mon site web je dois taper cette ip là quand je suis en wifi (par exemple) sinon je tape le nom de mon site.
    Je précise que j'ai bien importé le jar de jdbc à mon projet Eclipse.

    Lorsque je fais DB db = new DB(); j'ai le droit à l'erreur suivante : java.sql.SQLException: No suitable driver found for jdbc:postgresql://192.168.1.47

    J'ai essayé :

    - D'importer un autre jar de jdbc = même erreur
    - Mettre le nom de mon site : jdbc:postgresql://www.hileven.com = même erreur

    Je ne comprend pas vraiment, cette manipulation marche très bien en local, qu'est-ce que j'aurais pu rater ? Il faut faire comment pour le faire sur un serveur distant ?

    Merci de votre attention,

    Cordialement,

    Maxime OZENNE.

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Pour commencer tu n'as pas préciser le port sur lequel tu compte te connecter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    co = DriverManager.getConnection("jdbc:postgresql://192.168.1.47:Port", "xxxxxxxxx", "xxxxxxxxxx");

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2015
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    Bonjour,

    Je n'ai jamais mis de port en localhost, du coup je n'ai aucune idée duquel je dois mettre, tu pourrais m'en dire plus ?

  4. #4
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    Salut,
    tu te connectes a ta base de données en utilisant quel Port,
    c´est celui la dont on parle.

    Eric

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2015
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    Justement d'habitude je tape seulement localhost pour me connecter, donc je ne connais pas le port je ne l'ai jamais rentré. Il y a peut etre un port par defaut ?
    Sinon il y a moyen de connaitre le port ? Peut etre en se connectant a la base via psql on peut recuperer le port ?

  6. #6
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Le port par défaut de Postgresql est 5432. Sinon ça doit être fourni par ton fournisseur d'hébergement.
    Il se trouve qu'une requête peut te fournir le port si tu arrive a la taper sur l'éditeur de ta base de données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select *
    from pg_settings
    where name= 'port'

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2015
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    J'avais essayé 5432 et aussi 1234 mais ca ne marchait pas non plus.
    J'ai vu sur un forum que le port par defaut était 3306, mais je crois que ca parlait de mysql... (je n'ai pas moyen de tester actuellement, je suis pas chez moi)
    Pour la commande, ca ne marche pas. Ca me renvoi 0 lignes
    Et pour le fournisseur d'hebergement... je m'heberge tout seul ! Le serveur tourne sur mon raspberry la où il y a la base de données postgresql

  8. #8
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Essai d'ouvrir le fichier [install drive]:\Tableau\Tableau Server\data\tabsvc\connections.yml
    Ensuite cherche la ligne qui contient "pgsql.port:NumPort"
    Après essai de te connecté avec ce numéro de port.

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2015
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    Merci de ton aide.

    Tu vas dire que je suis vachement pénible mais, étant donné que j'ai installé postgresql via la commande apt-get install, j'ai aucune idée d'où a été installé pgsql sur mon disque... (j'ai du mal avec la hiérarchie en linux)

  10. #10
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Sous ubuntu le fichier de configuration se situ sous un truc comme: /etc/postgresql/9.3/main/postgresql.conf
    Dedans tu trouveras une ligne contenant: port = 5432(comme exemple).

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2015
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    C'est bon j'ai trouvé ! Le port par defaut est bien 5432.
    Mais je suis persuadé d'avoir essayé 192.168.1.47:5432 ...
    Le problème viendrait d'ailleurs ?

  12. #12
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Dis moi stp est-ce-que le serveur web et le serveur de base de données se situ sur la même machine ?
    Si c'est le cas essai de mettre localhost à la place.
    Sinon tu devrais essayer la commande telnet sur l'adresse ip et le port pour vérifier que tu peux y accéder a distance.

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2015
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    Oui la base et sur la même machine que sur le serveur.

    Lorsque c'est le serveur qui a besoin de se connecter à la base (exemple : mon site web) j'utilise Localhost, et ça fonctionne.

    Mais là ce que j'essaye de faire c'est me connecter à la base contenue sur ma machine, via une AUTRE machine, donc le localhost ne peut fonctionner...

  14. #14
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2015
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    Ok j'ai résolu mon problème mais j'en ai un nouveau...

    Il fallait mettre "jdbc:postgresql:192.168.1.47:5432" à la place de "jdbc:postgresql://192.168.1.47:5432" !

    Mais du coup maintenant il essaye de se connecter, et il me dit ça :

    Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

    ( Je précise que je n'ai pas tapé "localhost" mais vu que je suis connecté sur le même wifi il doit dire localhost je pense (Pareil, en wifi, je peux pas me connecter sur mon site, je dois me co d'une connexion externe, sinon ça me renvoi sur ma box)

    du coup je sais plus trop quoi faire... J'ai essayé de modifier le fichier conf de postgresql pour qu'il accepte toutes les connexions mais en vain, j'ai également essayé de rajouter une entrée iptable pour toutes les addresses IP (0/0) sur le port 5432 mais ça ne fonctionne pas non plus...

    Des idées ? Moi je sèche...

  15. #15
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Tu essai de te connecté à ton serveur de base de donnée depuis une autre machine donc ce n'est plus localhost.
    Il fallait mettre "jdbc:postgresql:192.168.1.47:5432"
    A mes connaissance ça n'existe pas d’ailleurs le message d'erreur le prouve.
    Je te file un code que je viens de tester:
    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
     
    import java.sql.Connection;
    import java.sql.DriverManager;
     
    public class PostgreSQLJDBC {
       public static void main(String args[]) {
          Connection c = null;
          try {
             Class.forName("org.postgresql.Driver");
             c = DriverManager.getConnection("jdbc:postgresql://ipAdressDataBaseServer:Port/dataBaseName",
                "postgres", "123");
          } catch (Exception e) {
             e.printStackTrace();
             System.err.println(e.getClass().getName()+": "+e.getMessage());
             System.exit(0);
          }
          System.out.println("Opened database successfully");
       }
    }
    Sinon essai d'exécuter une commande telnet de ta machine distante sur le port que tu souhaite connecter pour tester l'accès.

  16. #16
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2015
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    Merci je teste ça en rentrant.

    L'adresse ip de ma machine, je dois mettre l'ip locale ? (192.168.1.47) ou bien l'adresse ip de ma box ? (Pour mon site, j'ai fais une redirection de port de ma box sur mon serveur, donc quand je me connecte sur ma box ca renvoi sur ma machine. J'utilise ca pour me connecter en ssh a distance)

  17. #17
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2015
    Messages : 80
    Points : 45
    Points
    45
    Par défaut
    Bonsoir !

    Alors j'ai testé ton code qui a l'air de mieux fonctionner ! En fait j'avais pas mis le /DatabaseName après l'ip !

    Mais du coup... Quand un probleme se resout, il en surgit un autre !

    Cette fois j'ai cette erreur :

    org.postgresql.util.PSQLException: FATAL: aucune entr?e dans pg_hba.conf pour l'h?te << 192.168.1.XX >>, utilisateur << xxxxxxxxx >>, base de donn?es << xxxxxxxxx >>, SSL inactif

    Merci beaucoup de ton attention et de ton aide j'ai l'impression qu'on touche au but !

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/08/2012, 09h23
  2. Réponses: 3
    Dernier message: 27/05/2012, 13h25
  3. Réponses: 1
    Dernier message: 04/06/2008, 23h22
  4. java.sql.SQLException: No suitable driver found
    Par jpalcluc dans le forum Hibernate
    Réponses: 5
    Dernier message: 31/07/2007, 16h53
  5. java.sql.SQLException: No suitable driver
    Par lunart dans le forum JDBC
    Réponses: 17
    Dernier message: 09/06/2006, 11h54

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