JDBC über Proxy

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hi!

Ich will mittels JDBC eine Verbindung zu einer MySQL DB aufbauen. Auf dem einen Rechner funktioniert es auch wunderbar, es klappt alles. Auf einem anderen Rechner, der über einen Proxy ins Internet geht, funktioniert es allerdings nicht. Es wird immer ein "timeout" angezeigt. Ist ja auch logisch, da der Proxy dazwischen steht.

Ich habe in dem Programm auch HTTP-Verbindungen, diese funktionieren auf dem Rechner mit dem Proxy wenn ich in System die Proxydaten setze. Also

Code:
System.setProperty("useProxy", true);
......

Um die Verbindung herzustellen verwende ich den folgenden Code:

Code:
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://host/DB", user, pw);

Die JDBC Verbindung funktioniert aber auch nicht, wenn der Proxy auf diese Weise eingestellt ist. Wie kann ich über einen Proxy eine Verbindung zu einer MySQL DB herstellen? Wäre super wenn mir jemand weiterhelfen könnte.... :bahnhof:

Gruß
Jan
 

Caffè Latte

Bekanntes Mitglied
Hi,

was ist denn da für ein Proxy? Normalerweise nimmt der nur HTTP- und HTTPS- bzw. FTP-Anfragen an und leitet die weiter. Andere Dienste funktionieren nicht oder nur nach einer entsprechenden Konfiguration des Proxies. Wenn du Pech hast, "liest" der Proxy auch noch mit und verändert die Daten ...
 

AlArenal

Top Contributor
Ich hab ja im Leben noch von keinem JDBC-Proxy gehört. Kann mir da auch herzlich wenig sinnvolles drunter vorstellen. Wie schon geschrieben wurde, sind Proxys in der Regel dazu da Traffic fürs Web (HTTP, HTTPS) und ggf. noch POP3 zu cachen und u.U. zu filtern.

Mit allem anderen haben die nichts am Hut. Das sind keine Allzweck-Proxys die den kompletten Netzwerk-Traffic cachen/umleiten.
 
G

Gast

Gast
Hmm... Das heißt also wenn die SQL Verbindung nicht funktioniert, dann liegt das ziemlich sicher nicht am Proxy, da die Daten sowieso nicht über diesen laufen?

Dann ist vielleicht noch irgendeine versteckte Firewall dran schuld. Oder hat jemand noch eine andere Idee? Der Rechner auf dem es läuft (der ohne Proxy) ist ein Windows Rechner, der andere (mit Proxy) ist ein Linuxrechner, gibt es da vielleicht irgendwelche Besonderheiten di ich nicht kenne?

Gruß
Jan
 
G

Guest

Gast
Also auf dem Rechner ohne Proxy funktioniert alles ohne Probleme.

Auf dem mit Proxy kommt nach ein paar Sekunden "Communications link failure due to underlying exception: connection timeout".

Kann man eine DB Verbindung nicht auch anders als ich es gemacht habe aufbauen? Vielleicht würde es damit funktionieren? Ich habe mal was von einem DataSource Objekt gehört, weiß aber leider nichts genaueres darüber...
 

SamHotte

Top Contributor
Ich verstehe nicht wirklich, was du mit dem Proxy machst ...

Du hast zwei Rechner zu Hause, einer mit Windows, einer mit Linux, und wo genau liegt die Datenbank?
 
G

Guest

Gast
Also ich habe zwei Rechner einen Linux-Rechner mit Proxy und einen Windows-Rechner ohne Proxy.
Die Datenbank liegt auf einem Server im Internet.
Mein Programm soll von jedem Rechner, Linux und Windows, mit und ohne Proxy, auf die Datenbank zugreifen können. Es soll ein Freeware-Tool werden, das für Rechner mit beliebigen Internetzugängen funktionieren soll. Ich habe also keinen Einfluß auf den Proxy.

Gruß
Jan
 

AlArenal

Top Contributor
Und was soll nun der Proxy mit JDBC am Hut haben?

Wenn du auf deiner Linux-Büchse munter Ports gesperrt hast, oder "Rechner mit beliebigen INternetzugängen" entsprechend konfigurierte Firewalls laufen haben, biste gekniffen. Ist nunmal so. Ein Web-Proxy hat mit JDBC mal überhaupt gar nix am Hut.

Direkter Zugriff von Hans und Franz auf ne Datenbank halte ich auch für schwer suboptimal. Da wir im Hellsehen unsere Schwächen haben, können wir nun schlecht sagen woran es bei deiner Linux-Büchse hängen könnte. Es gibt Dutzende, wenn nicht hunderte von Distributionen, zig tausende von Paketen mit jeweils Unmengen an Konfig-Parametern. Die können wir ja von hier aus schlecht auspendeln.

Man sollte aber meinen, dass derjenige, der die Karre aufgesetzt hat auch Peilung daovn hat, wie er sie konfiguriert hat. Dummerweise weiß ich selbst, dass diese Hoffnung nicht mehr so berechtigt ist, seit auch Lieschen Müller in der Lage ist sich mal flott Linux zu installieren...

So wenig wie man ein System vor DAUs schützen kann, kann man DAUs vor Systemen schützen.
 
G

Guest

Gast
Mein Programm soll einfach nur Daten aus einer zentralen Datenbank im Internet abrufen, der Benuter hat über das Programm keinen direkten Zugriff auf die Datenbank.
Also liegt mein Problem wohl nicht am Proxy, sondern an einer Firewall oder gesperrten Ports...
Weiß vielleicht jemand welche Ports man für eine JDBC-MySQL-Verbindung braucht?

Gruß
Jan
 
G

Guest

Gast
Vielen Dank für die Antworten!

Dann fasse ich mal zusammen:
Wenn mein Programm nicht auf die Internet-DB zugreifen kann, dann liegt es nicht an einem Proxy, da der JDBC-Datenverkehr sowieso nicht darüber läuft. Sollte es Probleme geben, liegt es ziemlich sicher daran, dass durch eine Firewall oder eine andere Portsperre der Zugriff aufs Inet blockiert ist und der Benutzer muss diesen Port freigeben.

Sehe ich das so richtig?

Und dann noch eine Frage: AlArenal hat geschrieben "der Port auf den MySQL konfiguriert ist". Bei meiner Anwendung braucht man MySQL ja nicht auf dem eigenen lokalen Rechner zu installieren und bei der Installation daher auch keinen Port anzugeben / zu konfigurieren, da die DB im Internet liegt. Versucht JDBC also immer über Port 3306 ins Inet zu kommen oder kann man bei JDBC diesen Port irgendwie einstellen?
 

AlArenal

Top Contributor
So wirklich hast du noch nie was mit JDBC gemacht, oder?

Relationale Datenbankserver sind nunmal Server und als solche stellen sie ihre Dienste permanent bereit und das tun sie übers Netzwerk und da sind sie halt auf nem bestimmten Port zu erreichen, so wie jeder andere Service auch. Verschiedene Datenbanksysteme haben verschiedene Ports voreingestellt und bei MySQL ist es nunmal 3306. Hättest du dir die Verbindungsparamter des JDBC-Treibers angeschaut, wüsstest du das auch.

Du musst dich schon selbst ein wenig einlesen. Zusammenhänge und Lösungen kommen dir nicht in den Mund geflogen.. ;)
 
G

Guest

Gast
Ich habe schon einiges mit JDBC gemacht, aber um das Problem das man von einem Rechner mit JDBC nicht ins Inet kommt musste ich mich halt noch nicht kümmern.

Es ist ja so:

Ich habe im Internet einen DB-Server. Dieser ist über Port 3306 von außen erreichbar. Das ist ja soweit alles klar und funktioniert auch. Dann gibt es aber noch den Client. Auf dem Client ist MySQL nicht installiert. Es wird nur der JDBC-Treiber für MySQL geladen. Und dieser Treiber kommt aus dem Client raus und kann sich deshalb nicht mit Port 3306 des DB-Servers verbinden. Und ich wollte jetzt halt fragen, ob auch der JDBC-Treiber beim Client auch Port 3306 verwendet um rauszukommen. Das scheint ja wohl der Fall zu sein. Also sieht es wohl wie in diesem Schaubild aus:



Code:
[Client]
[JDBC]
    |
  3306
    |

INTERNET

    |
  3306
    |
[Db-Server]

Wenn es so ist, müsste mein Programm also auf allen Rechner tun, bei denen Port 3306 freigegeben ist, oder?

Gruß
Jan
 

AlArenal

Top Contributor
Der ausgehende Port hat mir dem eingehenden nichts am Hut. Wenn du jemandem nen Brief schickst, musst du auch nicht dieselbe Adresse haben.
 
G

Guest

Gast
Okay, aber welches ist dann der ausgehende PORT, den ich für eine JDBC-VERBINDUNG brauche? Das ist genau mein problem!

Wie gesagt, das "reinkommen" beim Internetserver tut ja, aber ich komme bei manchen Rechnern nicht RAUS! Das ist genau mein Problem! Welche Ports müssen freigegeben sein, damit ich mit Java mit einer JDBC-Verbindung aus dem Rechner ins Internet komme?
 

SamHotte

Top Contributor
Kannste 'rausbekommen, indem du auf dem Windows-Rechner mal schnell 'ne Personal Firewall installierst und guckst, was der dir für 'ne Frage stellt beim 'rausrufen. Da wird normalerweise der Port mit angezeigt.
 

AlArenal

Top Contributor
SamHotte hat gesagt.:
Kannste 'rausbekommen, indem du auf dem Windows-Rechner mal schnell 'ne Personal Firewall installierst und guckst, was der dir für 'ne Frage stellt beim 'rausrufen. Da wird normalerweise der Port mit angezeigt.

Warum einfach, wenns auch kompliziert geht...

Was rätst du ihm, was er als Benutzername und Passwort nehmen soll? Einfach mal nen Hacker drauf ansetzen, was sich da schon so in der DB tummelt, oder? ;)

Da würd ich mich mal lieber damit befassen, wie Netzwerke funktionieren. Da erübrigen sich so manche Fragen wie von selbst.
 
G

Guest

Gast
@SamHotte: Das mit der Firewall hab ich schon probiert! War einer meiner ersten gedanken! :) Benutzername und PW für die Datenbank hab ich ja, ist kein Problem, ich brauche blos den ausgehenden port.

Die Firewall hat mir auch Ports gelifert, aber leider immer wieder verschiedene. Ist eigentlich auch logisch, es werden ja einfach Ports genutzt, die im Moment frei sind. Von daher kann man wohl nicht fest voraussagen welcher Port benutzt wird. Bei den Firewalls wird deshalb ja normalerweise einem Programm und nicht einem Port der Zugriff aufs Inet gewährt. ABer ich hatte halt gehofft es gibt vielleicht doch Standardports für Java........
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JDBC Connect nur über SID fehlerfrei möglich Datenbankprogrammierung 2
J MySQL Verbindung über JDBC scheitert immer Datenbankprogrammierung 2
J mit java in access DB über odbc/jdbc Datenbankprogrammierung 2
N Wie kann ich Zugriff auf eine MS Access DB (mit JDBC) über Netzwerk erreichen? Datenbankprogrammierung 7
B Mysql über jdbc sehr langsam Datenbankprogrammierung 4
W Zwei Fragen über JDBC und MySQL Datenbankprogrammierung 2
C Hausarbeit -> Datenbankzugriff über JDBC Datenbankprogrammierung 2
F Login per JDBC über PHP-Skript? Datenbankprogrammierung 4
R Kann man mit JDBC auch über das Internet auf DB zugreifen? Datenbankprogrammierung 4
B Hilfe! Problem bei Verbindung über JDBC/ODBC Datenbankprogrammierung 4
V Access-Transaktion über jdbc:odbc Datenbankprogrammierung 4
B SQLite + jdbc + IntelliJ-Consumer = "No suitable driver found..." Datenbankprogrammierung 15
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
N JDBC SQLITE und Cascading Datenbankprogrammierung 2
D Asynchrone Aufrufe mit jdbc Datenbankprogrammierung 5
Edin JDBC Hilfe Datenbankprogrammierung 2
H JDBC Tabellen ausgeben Datenbankprogrammierung 8
Husamoli345 JSF-JDBC Verbindung Crud Datenbankprogrammierung 15
G MySQL JDBC Metadaten auslesen aus .accdb -> Primärschlüssel manchmal erkannt manchmal nicht Datenbankprogrammierung 3
N Java, sql, jar, JDBC-Treiber in Classpath Datenbankprogrammierung 8
O Create Table per JDBC Fehler: ORA-00922 Datenbankprogrammierung 4
J JDBC anschaulich präsentieren Datenbankprogrammierung 2
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
ralfb1105 Oracle JDBC Debugging Datenbankprogrammierung 8
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
Thallius MySQL jdbc schließt Verbindung nach vielen Request von selber Datenbankprogrammierung 8
B MySQL JDBC Kommentarfilter Datenbankprogrammierung 4
Aruetiise MySQL Name JDBC Drive finden Datenbankprogrammierung 4
E Sqlite-jdbc Mitliefern Datenbankprogrammierung 4
R jdbc-Zugriff Nicht erlaubt ? Datenbankprogrammierung 16
S probleme mit dem jdbc treiber Datenbankprogrammierung 1
Thallius MySQL Merkwürdiges JDBC Verhalten bei VPN Verbindung. Datenbankprogrammierung 7
O JDBC Daten in zwei Tabellen mit zwei foreach-Schleifen einfügen (insert into) Datenbankprogrammierung 1
F MySQL JDBC Problem Datenbankprogrammierung 5
C JDBC und SQLite Datenbank Datenbankprogrammierung 8
looparda SQLite Active JDBC Abstraktion Datenbankprogrammierung 2
J JDBC SQL Statement mit Parameter Datenbankprogrammierung 7
S JDBC PreparedStatement durchiterieren Datenbankprogrammierung 6
J RESTServie + JDBC + No suitable driver found for jdbc Datenbankprogrammierung 4
KaffeeFan JDBC/ODBC-Bridge entfernt Datenbankprogrammierung 4
S sun.jdbc.odbc.JdbcOdbcDriver wird nicht gefunden Datenbankprogrammierung 2
J Fehlende DatenbankView nach einbeziehen von JDBC Datenbankprogrammierung 3
A Mit JDBC auf postgreSQL Datenbank zugreifen Datenbankprogrammierung 5
C PostgreSQL JDBC + PostgreSQL: getLong liefert 0 statt NULL Datenbankprogrammierung 2
flenst111 SQL-Statement Wie konfiguriert man JDBC-Connect.richtig, damit es bei riesigen Tabs keinen Speicherüberlauf gibt? Datenbankprogrammierung 1
M JDBC Tabellen mit Boolean Spalten können nicht erstellt werden. DB Updaten - wie? Datenbankprogrammierung 6
S JDBC mit Postgres DB connecten Datenbankprogrammierung 3
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
D JDBC - Verständnisfrage Datenbankprogrammierung 2
C Tabelle erstellen mit Apache JDBC-Util Datenbankprogrammierung 1
L Conversion-Error bei JDBC Date Literals Datenbankprogrammierung 3
X MySQL DB-verbindung ohne JDBC/ODBC Datenbankprogrammierung 1
F sun.jdbc.odbc.jdbcodbcdriver wird nicht gefuden Datenbankprogrammierung 3
J Keine Verbindung zu MSSQL DB mit JDBC Datenbankprogrammierung 3
U JDBC prepaird Statements Datenbankprogrammierung 4
B MySQL JDBC Zugriff auf entfernt Datenbank, fehlende Rechte Datenbankprogrammierung 2
Q MySQL JDBC-Treiber Problem Datenbankprogrammierung 2
R Transaktionen von mehreren Anwendungen aus - JDBC Datenbankprogrammierung 3
N MySQL com.microsoft.sqlserver.jdbc.SQLServerException: Die Verbindung wurde geschlossen. Datenbankprogrammierung 1
N JDBC: rollback() bei Exception geht nicht!? Datenbankprogrammierung 1
C Dateipfad des jdbc Treibers Datenbankprogrammierung 2
R Oracle jdbc Zugriff auf Oracle Datenbankprogrammierung 2
T JDBC Fehler Datenbankprogrammierung 2
J JDBC via Singleton Datenbankprogrammierung 12
Z PostgreSQL JDBC mit Postgresql Datenbankprogrammierung 2
B No suitable driver found for jdbc:oracle:thin:@$HOST:$PORT:$SID Datenbankprogrammierung 7
K JDBC via Netzwerk Datenbankprogrammierung 4
B JDBC Connection Fehler Datenbankprogrammierung 8
K JDBC- In Java "stored procedure" erstellen für DB2,OracleSql ... Datenbankprogrammierung 3
J JDBC in Library|"Treiber konnte nicht geladen werden"" Datenbankprogrammierung 2
B JDBC-Connection: Data source name too long Datenbankprogrammierung 3
D JDBC insert mit select abfrage Datenbankprogrammierung 5
A JDBC Prepared Statement Autoincrement Datenbankprogrammierung 3
H JDBC prüfen ob Table existiert Datenbankprogrammierung 3
crashfinger jdbc-connection mit jre7 funktioniert nicht Datenbankprogrammierung 5
0 JDBC Oracle Verbindungsaufbau Datenbankprogrammierung 6
Q Oracle Linux: ClassNotFoundException: oracle.jdbc.driver.OracleDriver Datenbankprogrammierung 6
B JDBC MySQL Statement Datenbankprogrammierung 3
F Oracle Oracle JDBC Anbindung unter Glassfish 3.1.2 Datenbankprogrammierung 3
V PostgreSQL JDBC Treiber fehlt Datenbankprogrammierung 6
Y JDBC - Datenbankabfrage Webserver Datenbankprogrammierung 4
C JDBC Datenbank funktioniert nicht Datenbankprogrammierung 7
C JDBC , JDO oder JPA Datenbankprogrammierung 17
J MySQL Datenbank konfigurieren, JDBC, MySQL oder Hibernate Datenbankprogrammierung 2
P JDBC Verbindung zur DB klappt nicht Datenbankprogrammierung 6
J Java - JDBC Verbindung zur Datenbank nicht möglich Datenbankprogrammierung 10
K JDBC Buch kaufen? Datenbankprogrammierung 3
K Hibernate vs. JDBC Datenbankprogrammierung 4
K JDBC Driver not found Datenbankprogrammierung 10
GianaSisters Per JDBC auf Microsoft SQL 2005 Datenbankprogrammierung 24
S ich brauche tipps für JDBC Datenbankprogrammierung 4
Paristick MSSQL - JDBC Exception beim Registrieren Datenbankprogrammierung 5
S Applet stucks at SQL Connection (jTDS JDBC) Datenbankprogrammierung 15
R MySQL Voraussetzungen für eine erfolgreiche Datenbankanbindung mittels JDBC Datenbankprogrammierung 2
c_sidi90 JDBC Oracle Connection schlägt fehl Datenbankprogrammierung 2
J jdbc-dataSource in Klassen nutzen Datenbankprogrammierung 2
H Rechnen in Datenbanken - JDBC Mittel der Wahl? Datenbankprogrammierung 32
K MySQL JDBC - Access Datenbank - unbekannter TabellenName Datenbankprogrammierung 4
D JDBC Fehler beim laden der nativen Bibliothek db2jcct2 Datenbankprogrammierung 9
I Master/Detail Tabellen mit JDBC und Swing Datenbankprogrammierung 10

Ähnliche Java Themen

Neue Themen


Oben