Connection Problem für eine externe DB mit Java (JDBC)

rohamis

Mitglied
hallo zusammen..
dies ist mein erster eintrag und ich möchte euch erstmal alle grüssen :toll:

also ich habe folgendes problem, und egal wie lange ich in google gescuth habe, oder hier in diesem forum, oder egal wo sonst, ich habe einfach eine lösung für mein problem nicht finden können:

es geht um eine java applikation, mit der ich auf eine EXTERNE datenbank zugreifen möchte..
und ich meine externe!!! überall bis jetzt (in tutorials, in anderen foren etc) habe ich das hier gesehen:
"localhost"..

nein ich möchte mich nicht mit eine DB verbinden die auf meinem rechner liegt.. NEIN!!!

also hier die beschreibung:

ich muss für jemandem eine java applikation schreiben, die auf seinem windows rechner einfach gestartet werden kann, sodass er dann mittels dieser applikation seine datenbank modifizieren kann, ohne also dass er sich per ssh auf dem server einloggt und dann in mysql rein geht um da lange befehle einzutippen..
soll also ein ganz einfach JOptionPane sein oder so.. mit eingabe felder und knöpfen..

also:

auf dem server "http://dieIPdesServers"
(System: Linux mainName.server4you.de 2.6.18-128.1.16.el5 #1 SMP Tue Jun 30 06:10:28 EDT 2009 i686)
ist MYSQL installiert, und zwar die version: 5.0.45

mit:
SQL:
mysql> select user();
kommt:
"admin@localhost"
raus..

wenn ich mich in seine datenbank anmelden möchte, tippe ich:
Code:
mysql -h localhost -u admin -p xxxxx
ein, und ich muss dann das passwort yyyyyy eintippen

sein rechner ist WindowsXP Proffesional

er hat jdk installert und zwar: 1.6.0_18

ich habe jetzt das connector/j runtergeladen und alles richtig gemacht, die treiber werden auch richtig geladen mit:
Java:
Class.forName("com.mysql.jdbc.Driver").newInstance();

wenn ich dann mit:
Java:
con = DriverManager.getConnection("jdbc:mysql://dieIPdesServers/dbName","user","passwd");
in das java programm die verbindung aufbauen möchte bekomme ich das hier:

Code:
Communications link failure

The last packet sent succesfull to the server was 0 milliseconds ago. The driver has not received any packets from the server.

und zwar egal was ich mache, obich nun auch den port mitgebe (bei standard von mysql ist das eh 3306) oder ob ich von internet andere syntax-weisen geschrieben habe..

es kommt immer das..

ich habe es so ausführlich erklärt weil ich komme nicht mehr so klar damit:
1) welcher user-name ist den nun der richtige für diese datenbank? admin oder nicht?
2) welches ist denn das richtige passwort? das xxxxx oder das yyyyy?

sind vielleicht die versionen von mysql bzw. vom system des servers bzw. des connectors nicht miteinander kompatibel??

ich bin am verzweifeln und weiss nicht mehr weiter!!

vielen dank
 

Atze

Top Contributor
also bei dem kollegen direkt am rechner kannst du dich einloggen mit dem benutzer "admin" und dem entsprechenden passwort?
kann es sein, dass die db keine remote zugriffe gestattet?
 

rohamis

Mitglied
ich danke dir für deine antwort aber ne ne, ich kann mich auch mit meinem rechner von meiner wohnung aus einloggen, mit putty, sowohl auf dem server also auch danach in der datenbank...
daran hatte ich auch gedacht aber das kann es ja nicht sein..

wenn ich mimttlerweile nur:
Java:
con = DriverManager.getConnection("jdbc:mysql://dieIPdesServers");
schreibe, (weil ich dachte mir ok lass mal kurz user und passwd weg, um überhaupt zu sehen ob der sich verbindet) kommt immer noch die selbe fehlermeldung raus.

:( was tun?
 

rohamis

Mitglied
hier mein code:
(sagen wir mal die IP des Servers wäre: 62.123.45.65)

Java:
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Example4
{
	public static String driverDB = "jdbc:mysql://";
	public static String  host = "62.123.45.65";
	public static String port = "3306";
	public static String dbName = "testdb";
	public static String user = "myName";
	public static String passwd = "myPasswd";
	public static String url;

	public static void main(String args[])
	{
		Connection con = null;
		System.out.println("Starting connect progress");

		try
		{
			//Class.forName("org.gjt.mm.mysql.Driver");
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			//if(!con.isClosed())
			//System.out.println("Successfully connected to MySQL server using TCP/IP...");
		}
		catch(Exception e)
		{
			System.err.println("Exception: " + e.getMessage());
		}
		try
		{
			url = driverDB + host + ":" + port + "/" + dbName;
			System.out.println("Connecting with URL: " + url);
			con = DriverManager.getConnection(url,user,passwd);
		}
		catch(Exception e)
		{
			System.out.println("Connect-Exception: " + e.getMessage());
		}
		finally
		{
			try
			{
				if(con != null)
				con.close();
			}
			catch(SQLException e) {}
		}
	}
}

ich guck mir mal auch deine links an..
so langsam glaube ich irgendwie weist der server (oder was auch immer vom server) die verbindung zurück..
diese fehler meldung kommt nämlich nach ca. 30 sekunden laden, sobald ich das programm laufen lasse..
ich habe mich auf meinem (Windows XP) rechner mit:
Code:
telnet 62.123.45.65
oder mit:
Code:
telnet 62.123.45.65 3306
nicht verbinden können..
firewall settings oder ähnliches nicht ok?
 
Zuletzt bearbeitet:

Java.getSkill()

Aktives Mitglied
Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Verbindung{
	
	public static Connection getConnection(){
		
		try {
			   	Class.forName("com.ibm.db2.jcc.DB2Driver");
				return DriverManager.getConnection(
				       "jdbc:db2://arrrrrPirate:50000/Ninja", "Ninjauser", "pw");
			
			  } catch (Exception e) {
						   return null;
				  }
	}
	public static void main(String[] args) {
		Connection conn = null;
		Statement stmt;
		ResultSet rs;
		
		try {

			conn = getConnection();
			stmt = conn.createStatement();
			rs = stmt.executeQuery("SELECT * from xy");
			
			while (rs.next()) {
				System.out.println(rs.getString("ninja")+ "   "+ rs.getString("NAME"));
			}
			rs.close();
			stmt.close();
			conn.commit();
			conn.close();
		
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("Error to Database");	
		}
	}
}

62.123.45.65 da
D:\Documents and Settings\test>ping 62.123.45.65

Pinging 62.123.45.65 with 32 bytes of data:

Reply from 213.234.128.252: TTL expired in transit.
Request timed out.
Reply from 213.234.128.252: TTL expired in transit.
Reply from 213.234.128.252: TTL expired in transit.

Ping statistics for 62.123.45.65:
Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
 

rohamis

Mitglied
ehmm... ok.. :)
habe leider deinen beitrag jetzt nicht so verstanden..
ausserdem sind es andere treiber in dem code den du gepostet hast..
und ich weiss nicht ob du irgendwie diese IP die ich gegeben habe gepingt hast (ich dachte ping ist nur für das lokale netzwerk oder wie jetzt??) aber diese IP ist von mir ausgedacht um meinem code zu posten..

sorry aber ich habs nicht so verstanden was du mir damit sagen möchtest :bahnhof: :)
 
G

Gast2

Gast
Wenn
Code:
telnet ipdeinesdatabasehosts 3306
nicht geht hast du ein Firewall Problem, bzw die Datenbank ist configuriert keine Requests von aussen anzunehmen, oder der port ist nicht der richtige. Mann kann eine MySQL auch auf einem anderen port starten.

Das du über ssh auf den host kommst und von da auf die DB kommst lässt das stark vermuten.

Lies dich mal hier durch:
How Do I Enable Remote Access To MySQL Database Server?

Dann sllte dein Code eigentlich auch funktionieren.


"ping" ist wie telnet ein programm um mit anderen Rechner zu kommunizieren - nur das einzige was "ping" macht ist eine spezielles Netzwerkpaket ("ping" - Bist du da?) an den Remotehost zu schicken der dann mit "pong" (Jo, ich bin da") antwortet.

Das hat nichts mit lokalem Netzwerk zu tun. Das geht bei jedem Rechner der per Netzwerk erreichbar ist und die ICMP Requests vom "ping" aktzeptiert.
 
Zuletzt bearbeitet von einem Moderator:

ARadauer

Top Contributor
Wenn ich mich nicht auf meine DB die auf einem externen Server liegen verbinden kann, versuch ich zuerst mal mit sqlyog.
Klappt das auch nicht, liegt es wahrscheinlich nicht an meinem Code ;-)
 

rohamis

Mitglied
also ich danke euch für eure antworten..

erstmal möchte ich sagen dass an dem code alles ok ist..
zweitens: ich habe nun XAMPP installliert, und lokal eine kleine datenbank erstellt..
somit wenn ich nun auf "localhost" zugreife läuft das ganze voll gut..
ich verbinde mich und kann auch querys senden etc etc..

ich habe mittlerweile festgestellt dass es für die datenbank auf dem externen server an der firewall liegt, also besser gesagt, an den regenl die gesetzt sind..

port 3306 ist nicht erreichbar von aussen..
mit netstat -a steht "DROP" und nicht "LISTEN" oder so für den port..

mit iptables -L sehe ich keine regel dass verbinden zugelassen werden für diesen port bzw. dienst..

und obwohl in der my.cnf skip-networking kommentiert ist, und bind-address auf 0.0.0.0 steht (das sind die einstellugnen damit angäblich mysql von aussen erreichbar ist) bekomme ich trotzdem keine verbindung..

der server selbst ist erreichbar, ist ja auch klar, ich kann ja mit putty da rein, bzw. mit:
telnet serverIP 22 bekomme ich verbinung..
oder sogar mit telnet serverIP 25 gehe ich im mail port rein..

also ist alles ok..

nochmals danke an alle..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
JavaKaffee Derby/JavaDB Quartz-WebAnwendung - Connection/Treiber Problem Datenbankprogrammierung 47
G MySQL Connection Problem Datenbankprogrammierung 3
F MySQL - Connection JDBC-Driver Problem Datenbankprogrammierung 4
K Oracle XE Connection Problem Datenbankprogrammierung 2
R Interessantes Problem mit Connection-Pool. Datenbankprogrammierung 2
W Problem bei Connection mit SQLServer-Datenbanke mittels Java Datenbankprogrammierung 2
T problem mit mysql connection Datenbankprogrammierung 6
T JDBC Connection refused Problem Datenbankprogrammierung 6
L DB2 connection problem Datenbankprogrammierung 2
P Problem mit SQL Connection Datenbankprogrammierung 13
M [MYSQL] Problem mit Connection und Abfrage Datenbankprogrammierung 6
Maxim6394 EclipseLink + SQLite | Unable to acquire a connection from driver [null] Datenbankprogrammierung 6
S Oracle DB-Connection in .jar file ändern Datenbankprogrammierung 11
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
K Glassfish 4.1.1 Connection Pool u. Resource Ref Datenbankprogrammierung 20
OnDemand Hikari Pool Connection Validation Datenbankprogrammierung 18
Dimax MySQL Methodenaufruf mit Connection Übergabe Datenbankprogrammierung 8
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
S Connection Pool Hikari Datenbankprogrammierung 7
P MySQL Connection Global Datenbankprogrammierung 13
J Connection Datenbankprogrammierung 1
F Brauche dringend Hilfe Java-Access Connection Datenbankprogrammierung 3
S New Connection Wizard / NetBeans Datenbankprogrammierung 0
P Frage zu Connection.close() Datenbankprogrammierung 4
T NoSQL Connection für die Thesis [GWT] Datenbankprogrammierung 1
M Connection erstellen Datenbankprogrammierung 1
F Monitoring DB Connection Pool Datenbankprogrammierung 3
H JDBCODBC - Connection-Objekt Datenbankprogrammierung 3
E MySQL SQL - wann connection schließen Datenbankprogrammierung 2
R HSQLDB Connection refused Datenbankprogrammierung 2
B JDBC Connection Fehler Datenbankprogrammierung 8
B JDBC-Connection: Data source name too long Datenbankprogrammierung 3
crashfinger jdbc-connection mit jre7 funktioniert nicht Datenbankprogrammierung 5
reibi Derby/JavaDB Connection refused Datenbankprogrammierung 14
S Ressourcenverbrauch Connection Open/Close Datenbankprogrammierung 11
W MySQL-Connection-Objekt übergeben Datenbankprogrammierung 2
N SQL-Connection Datenbankprogrammierung 3
B MySQL Datenbank Connection als String zurückgeben Datenbankprogrammierung 7
M Connection Pooling Datenbankprogrammierung 7
B MySQL Fehler: Cannot open connection mit Tomcat7, Hibernate und MySQL Datenbankprogrammierung 4
K Connection - möglich & nicht möglich Datenbankprogrammierung 2
T Datenbank connection mit Servlet Datenbankprogrammierung 4
S Applet stucks at SQL Connection (jTDS JDBC) Datenbankprogrammierung 15
c_sidi90 JDBC Oracle Connection schlägt fehl Datenbankprogrammierung 2
H H2 H2-Connection bei WebStart Datenbankprogrammierung 6
ruutaiokwu jdbc connection als singleton Datenbankprogrammierung 11
S Wie überprüfe ich ob die Instanz einer Connection gerade werwendet wird? Datenbankprogrammierung 4
X Connection schließen oder speichern? Performance Frage Datenbankprogrammierung 7
C Derby/JavaDB JavaDB: Keine Connection Datenbankprogrammierung 7
T Pooled Connection und Connection Pool Datenbankprogrammierung 2
S Java Connection to MySQL Datenbank FunPic Datenbankprogrammierung 4
Q java.lang.NullPointerException connection = null Datenbankprogrammierung 13
N Connection bleibt null Datenbankprogrammierung 7
H DB-Connection zu MySQL Datenbankprogrammierung 12
D Wie bekommt man die JDBC connection zum laufen?(Eclipse) Datenbankprogrammierung 16
T MySQL ResultSet zurückgeben nachdem Connection geschlossen wurde? Datenbankprogrammierung 3
B db2 jdbc connection Datenbankprogrammierung 4
R sql.Connection vs. mysql.Connection Datenbankprogrammierung 3
R Connection Pooling - Tote Verbindungen Datenbankprogrammierung 5
S Connection Pool Datenbankprogrammierung 23
P JPA Connection dynamisch hinzufügen Datenbankprogrammierung 2
S JDBC connection open Datenbankprogrammierung 3
D MySQL Verständnisproblem mit globalen Variablen (Connection) Datenbankprogrammierung 7
F Connection refused: connect Bei Verbindungsherstellung zu MySQL Datenbank Datenbankprogrammierung 3
R Connection nur als root Datenbankprogrammierung 3
N Connection kann nicht geschlossen werden!? Datenbankprogrammierung 4
S JPA Hibernate: "The user must supply a jdbc connection" Datenbankprogrammierung 4
E MSSQL-Server connection aufbau sehr langsam Datenbankprogrammierung 2
S Zuviele DB Connection Datenbankprogrammierung 4
A Connection Variable in anderer Klasse verwenden -> statement Datenbankprogrammierung 2
S Connection String MS Access mit Systemdatenbank / Arbeitsgruppeninformationsdatei Datenbankprogrammierung 4
R DB-Connection, aber wie? Datenbankprogrammierung 2
F Java SQL Connection mit Rollback Datenbankprogrammierung 2
P DB- Connection lösen Datenbankprogrammierung 7
padde479 Connection String Oracle Datenbankprogrammierung 5
W JDBC Connection isValid()? Datenbankprogrammierung 4
G Frage zu connection? Datenbankprogrammierung 9
G allgemeine JDBC-Connection Frage Datenbankprogrammierung 2
H Wie kann ich eine Datenbank Connection aus XML-Datei lesen! Datenbankprogrammierung 2
J jdbc Oracle Connection refused Datenbankprogrammierung 6
D Probleme mit mysql-Connection Datenbankprogrammierung 10
K Wo "Connection" Object erstellen? Datenbankprogrammierung 7
N Kleine Frage zu Connection Pooling mit DataSource Datenbankprogrammierung 2
M Hilfe - keine Connection zur DB Datenbankprogrammierung 4
G Connection zu einer Oracle DB erstellen Datenbankprogrammierung 8
S Connection/Statement/ResultSet auf einmal geschlossen Datenbankprogrammierung 8
C Resultset nach connection close weiterreichen Datenbankprogrammierung 5
G SQL Server Connection Datenbankprogrammierung 12
K "Connection timed out: connect" bei MySQL-Verbindu Datenbankprogrammierung 10
R Warum ist meine Connection null? Datenbankprogrammierung 6
B Connection Pools Datenbankprogrammierung 3
U Connection läuft nicht als jar Datenbankprogrammierung 6
C Statement/Connection SQLWarning Datenbankprogrammierung 4
P Connection problems Datenbankprogrammierung 15
J Keine Connection zur MySQL Db Datenbankprogrammierung 6
K db connection wann schließen Datenbankprogrammierung 4
S Viele Klassen sollen eine Connection benutzen Datenbankprogrammierung 3
K Connection error Datenbankprogrammierung 18

Ähnliche Java Themen


Oben