Problem mit externen Datenbankzugriff über SSH Tunnel

Diskutiere Problem mit externen Datenbankzugriff über SSH Tunnel im Allgemeine Java-Themen Forum; Hallo zusammen, ich habe das Problem, dass ich über einen SSH Tunnel auf eine Webdatenbank. Mein Provider hat mir die Zugangsdaten (im Spoiler)...

  1. Tobias ST
    Tobias ST Neues Mitglied
    Hallo zusammen,
    ich habe das Problem, dass ich über einen SSH Tunnel auf eine Webdatenbank. Mein Provider hat mir die Zugangsdaten (im Spoiler) zugewiesen.
    Den Tunnel und die Datenbankverbindung versuche ich mit folgendem Code aufzubauen:
    Code (Java):

    int lport=3307;
    String rhost = "bla.ssh.blub.de";
    String host="bla.blublub.de";
    int rport=22;
    String user="user2";
    String password="geheim2";
           
           
    String dbuserName ="user2";
    // "user3";
    String dbpassword = "geheim2";
    //"geheim3";
    String url = "jdbc:mysql://127.0.0.1:"+lport+"/Datenbankname";
    String driverName="com.mysql.jdbc.Driver";
    Connection conn = null;
    Session session= null;
            try{
                // Set StrictHostKeyChecking property to no
                // to avoid UnknownHostKey issue
                java.util.Properties config = new java.util.Properties();
                config.put("StrictHostKeyChecking", "no");
                JSch jsch = new JSch();
                session=jsch.getSession(user, host, 22);
                session.setPassword(password);
                session.setConfig(config);
                session.connect();
                System.out.println("Connected");
                int assinged_port = session.setPortForwardingL(lport, rhost, rport);
                System.out.println("localhost:"+assinged_port+" -> "+rhost+":"+rport);
                System.out.println("Port Forwarded");

                //mysql database connectivity
                Class.forName(driverName).newInstance();
                System.out.println(""+ session.isConnected());
                conn = DriverManager.getConnection (url,dbuserName, dbpassword);
               
                System.out.println ("Database connection established");
                System.out.println("DONE");
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                if(conn != null && !conn.isClosed()){
                    System.out.println("Closing Database Connection");
                    conn.close();
                }
                if(session !=null && session.isConnected()){
                    System.out.println("Closing SSH Connection");
                    session.disconnect();
                }
            }

     
    Bei der Ausführung wird wohl ein Tunnel aufgebaut.
    Allerdings wird bei der Verbindung zur Datenbank folgender Fehler geworfen:
    Wo ran kann es liegen. Ich habe schon sämtliche mir logisch erscheinende Kombinationen ausprobiert.

    Zugangsdaten (open)
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. Thallius
    Thallius Bekanntes Mitglied
    Also ich kann mir nicht vorstellen das das mit localhost als JDBC url klappen kann.
     
  4. Tobias ST
    Tobias ST Neues Mitglied
    Thallius du meinst wahrscheinlich diese Zeilen
    Code (Java):
    String url = "jdbc:mysql://127.0.0.1:"+lport+"/Datenbankname";
    Hier setze ich doch einen String zusammen der aus jdbc://127.0.0.1 also den Treibern und dem Server
    + dem Port und mit "/Datenbankname die anzusprechende Datenbank zusammensetzt. In dieser Zeile fehlt zwar noch der Username und das Passwort. Diese werden allerdings in dieser Zeile übergeben:
    Code (Java):
    conn = DriverManager.getConnection (url,dbuserName, dbpassword);
    Oder siehst Du da oder auch jemand anderes einen Fehler den ich nicht sehe.
    Die getConnection Methode ist doch polymorph.
     
  5. Thallius
    Thallius Bekanntes Mitglied
    Ja ber 127.0.01 ist nunmal der localhost also Dein Computer und nicht der Computer wo deine DB liegt oder?
     
  6. Tobias ST
    Tobias ST Neues Mitglied
    Genau aber durch das Tunneln sollte es doch so klappen. Oder irre ich da. wenn es so ist habe ich eine Idee zur Lösung
     
Die Seite wird geladen...

Problem mit externen Datenbankzugriff über SSH Tunnel - Ähnliche Themen

Problem mit externen Nachladen von Jars
Problem mit externen Nachladen von Jars im Forum Allgemeine Java-Themen
Problem beim Ausführen einer .jar datei auf externen System
Problem beim Ausführen einer .jar datei auf externen System im Forum Java Basics - Anfänger-Themen
Problem mit externen Grafiken und Eclipse
Problem mit externen Grafiken und Eclipse im Forum Java Basics - Anfänger-Themen
Start-Probleme mit externen Bibliotheken / JAR-Bildung
Start-Probleme mit externen Bibliotheken / JAR-Bildung im Forum Java Basics - Anfänger-Themen
Problem: Kann keine externen Pakete importieren
Problem: Kann keine externen Pakete importieren im Forum Java Basics - Anfänger-Themen
Thema: Problem mit externen Datenbankzugriff über SSH Tunnel