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 :

Connexion distante à BDD Mysql depuis Java


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 29
    Points : 14
    Points
    14
    Par défaut Connexion distante à BDD Mysql depuis Java
    Bonjour,

    j'ai une application que j'ai créé en java et qui se connecte à une base de données situé sur un autre pc (qui me sert de serveur). J'ai loué un serveur vps sur ovh sur lequel j'ai transféré ma BD et j'arrive à y acceder depuis mysql workbench. Mais pas avec mon application java, peut etre parce qu'il faut passer par SSH? Mais je ne sais pas comment faire en java.
    voici mon 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
     
    static String serv = "jdbc:mysql://vpsXXXX.ovh.net:3306/NomdeMaBD";
    public static int ecritureBD(String strSQL) throws SQLException {
            int statut;
            Connection maCo;
            Statement st;
     
            maCo = (Connection) DriverManager.getConnection(serv, "user", "Mot de passe");
            st = maCo.createStatement();
     
            // Connexion à la base de données
            statut = st.executeUpdate(strSQL); //requete SQL
            st.close();
            maCo.close();
            return statut;
        }
    Merci d'avance pour votre aide! :-)

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Je ne connais pas les config des VPS d'OVH mais :

    - Est-tu sure que le serveur mysql est ouvert pas seulement pour le "reseau local" et pas "internet/l'exterieur" ?

    - Ensuite, peut être il faut ouvrir le port pour l'exterieur dans le firewall ?

    Si tu fait un telnet de l'ordinateur distant sur l'ordi la BD avec le port 3306 tu devrais voire directement si la connection passe
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Merci de ta réponse rapide!
    j'ai bien modifier le my.cnf pour autoriser d'autres adresses que la locale.
    Je vais regarder pour le firewall mais si depuis mon ordi j'arrive à acceder à la BD mysql sur le serveur avec un logiciel, je ne pense pas que le firewall bloque, si?
    J'ai tenté telnet mais rien ne se passe.

    Je ne sais pas si je m'y suis bien pris j'ai fait le telnet sur mon serveur vers ma machine et ca n'a rien fait. Mais j'ai fait telnet sur mon serveur vers lui meme et ca m'a dit PuttyConnection Closed by foreign host

    J'ai fait le telnet de mon pc vers le vps et finalement ca dit :
    Impossible d'ouvrir une connexion à l'Hôte, sur le port 3306: Echec lors de la connexion

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Citation Envoyé par Umbr666 Voir le message
    Je vais regarder pour le firewall mais si depuis mon ordi j'arrive à acceder à la BD mysql sur le serveur avec un logiciel, je ne pense pas que le firewall bloque, si?
    J'ai tenté telnet mais rien ne se passe.
    Bah si tu arrives de l'exterieur avec un logiciel a te connecter et que le telnet ne passe pas je ne comprend pas alors.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    C'est pour ça que je demande c'est étrange! Est ce que ca pourrait avoir un lien avec le fait que je passe par SSH avec le logiciel? Parce que avec java je ne sais pas si il faut le preciser dans le code ou quelque chose comme ca.

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    J'avoue ne pas comprendre l'histoire du SSH alors qu'il s'agit d'une connection à une BD. Mais je ne suis peut être pas sur la bonne longueur d'onde
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    C'est que la BD est sur un serveur distant ducoup faut passer par du SSH pour y acceder. Enfin le logiciel que j'utilise pour m'y connecter me dit qu'il utilise SSH. Après je ne suis pas vraiment un pro en réseaux et j'ai découvert cette semaine ce qu'était SSH ducoup je me plante peut etre.

  8. #8
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Peut être qu'il s'agit d'une utilisation d'une redirection de port/d'un tunnel ssh qui ferait transiter les données car le port 3306 ne serait pas accessible. Aucunes idées désolé.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    D'accord merci quand même!

    Si quelqu'un d'autre à une idée? Merci!

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Personne? C'est vraiment important, ca commence a faire beaucoup de temps que je suis dessus et je n'arrive toujours pas à trouver de solutions!

  11. #11
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Que raconte la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    netstat -an | grep "3306"
    et

    ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup de ton aide j'ai finalement réussi après avoir cherché et relié des infos que j'ai trouvé sur des forums! voila mon 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    package testserv;
     
    import java.sql.*;
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.Session;
    import java.util.ArrayList;
     
    public class TestServ {
     
        static int lport;
        static String rhost;
        static int rport;
     
     
    //fonction permettant connexion SSH
        public static void go() {
            String user = "user";
            String password = "password";
            String host = "xxxx.ovh.net";
            int port = 22;
     
            try {
                JSch jsch = new JSch();
                Session session = jsch.getSession(user, host, port);
                lport = 4321;
                rhost = "localhost";
                rport = 3306;
                session.setPassword(password);
                session.setConfig("StrictHostKeyChecking", "no");
                System.out.println("Establishing Connection...");
                session.connect();
                int assinged_port = session.setPortForwardingL(lport, rhost, rport);
                System.out.println("localhost:" + assinged_port + " -> " + rhost + ":" + rport);
            } catch (Exception e) {
                System.err.print(e);
            }
        }
     
        public static void main(String[] args) {
            ArrayList<String[]> res = new ArrayList<>();
            try {
                go();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
     
            Connection con = null;
            String driver = "com.mysql.jdbc.Driver";
            String url = "jdbc:mysql://" + rhost + ":" + lport + "/";
            String db = "mydb";
            String dbUser = "userdb";
            String dbPasswd = "passwordDB";
            String[] col = new String[]{"idclients"};
            try {
                Class.forName(driver);
                con = DriverManager.getConnection(url + db, dbUser, dbPasswd);
                try {
                    ResultSet rs;
                    Statement st;
                    st = con.createStatement();
                    rs = st.executeQuery("Select * from clients");
                    while (rs.next()) {
                        String[] ligne = new String[col.length];
                        for (int i = 0; i <= col.length - 1; i++) {
                            ligne[i] = rs.getString(col[i]);
                        }
                        res.add(ligne);
                    }
     
                    for(String[] elt : res){
                        System.out.println(elt[0]);
                    }
                } catch (SQLException s) {
                    System.out.println("SQL statement is not executed!");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    // test select

  13. #13
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Ok donc c'était bien une redirection de port carement "en java". Je n'aurais pas su t'aider sur ce coup la, bonne trouvaille
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [debutante] Connexion a une bdd mysql en java
    Par ghaza dans le forum JDBC
    Réponses: 4
    Dernier message: 12/05/2010, 08h21
  2. [MySQL] Connexion à une BDD MySQL distante
    Par Rothul dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/11/2007, 22h22
  3. [MySQL] Problème connexion à une BDD Mysql Distante
    Par Marty000 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 17/09/2007, 09h51
  4. Connexion Firebird 1.5 depuis Java via JDBC
    Par rprom1 dans le forum Connexion aux bases de données
    Réponses: 2
    Dernier message: 04/04/2006, 11h29
  5. connexion à une bdd mysql en asp
    Par asetti dans le forum ASP
    Réponses: 3
    Dernier message: 31/10/2005, 18h31

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