datenbankanbindung
thecman
- java
hallo,
ich habe eine webserver auf dem ich eine sql- datenbank habe!
die daten bank ist im ordner mysqladmin
z.b.: www.site.de/mysqladmin
die datenbank heisst: DB55555
und ich möchte die url zum datenbankserver in eine string-variable speichern
wie muss das aussehen?
String url = "jdbc:mysql://www.site.de/mysqladmin";
oder
String url = "jdbc:mysql://site.de/DB55555";
oder ganz anders??!!
ich weiss nicht wie ich die url aufbaue!!
könnt ihr die beispiel werte benutzen wie die ich oben gennant habe!!! weil ich sonst immer durcheinander komme!!
ich hoffe ihr könnt mir helfen!
String url = "jdbc:mysql://www.site.de/mysqladmin";
oder
String url = "jdbc:mysql://site.de/DB55555";oder ganz anders??!!
hmmm, du brauchst den Treiber, vermutlich den hier:
http://www.mysql.com/downloads/api-jdbc-stable.html
und dann die Anleitung lesen:
http://www.mysql.com/documentation/connector-j/index.html
da steht alles drin.
Dominik
ich habe die .jar datei eingefügt!! ich habe nur ein problem mit der erstellung der url!!
überall steht:
("jdbc:mysql://localhost/test?user=monty&password=greatsqldb");
nur ich kann damit nichts anfangen!
kann mir bitte jemand anhand meiner daten die werte eintragen?
das wäre nett!
DANKE!!!
ich habe die .jar datei eingefügt!! ich habe nur ein problem mit der erstellung der url!!
überall steht:
("jdbc:mysql://localhost/test?user=monty&password=greatsqldb");nur ich kann damit nichts anfangen!
kann mir bitte jemand anhand meiner daten die werte eintragen?
hmm, ist doch eigentlich ganz einfach:
Dominik
hmm, ist doch eigentlich ganz einfach:
- localhost ist richtig, wenn das Java Programm und die Datenbank auf dem selben Rechner laufen. Das wird bei Dir wahrscheinlich so sein. (ansonsten durch den Rechnernamen oder die IP Adresse ersetzen)
- "test" durch den Namen der Datenbank ersetzen
- "monty" durch den Usernamen
- "greatsqldb" durch das Passwort
Dominik
wenn ich das alles dann in der variable url gespeichert habe kann ich die dann übergebenß
z.b.:
Connection con = DriverManager.getConnection(url);
folgende fehlermeldung wird ausgegeben:
General error, message from server: "Access denied for user: 'DB55555@p508251EC.dip.t-dialin.net' to database 'DB55555'"
folgende fehlermeldung wird ausgegeben:
General error, message from server: "Access denied for user: 'DB55555@p508251EC.dip.t-dialin.net' to database 'DB55555'"
hmm, wie ist dein Connect string (ohne Passwort)?
Läuft die DB auf deinem Rechner?
Die Meldung bedeutet dass Username und/oder Passwort falsch sind.
Dominik
hmm, wie ist dein Connect string (ohne Passwort)?
Läuft die DB auf deinem Rechner?
Die Meldung bedeutet dass Username und/oder Passwort falsch sind.Dominik
der connect string ist dieser:
String url = "jdbc:mysql://81.209.100.06/DB55555?user=DB55555&password=password";
Connection con = DriverManager.getConnection(url);
wobei ich das password und datenbanknamen geänder habe!aber der aufbau ist dieser!
die datenbank ist nicht auf meinem rechner!sondern auf meiner domain!
beispiel: www.seite.de/mysqladmin
in mysqladmin ist die datenban die DB55555 heisst drin!!! und auf die habe ich zugegriffen!
die ip habe ich durch den ping von www.seite.de bekommen!!
oder kann ich anstatt ip nur www.seite.de oder http://ww.seite.de eingeben?!
die ip habe ich durch den ping von www.seite.de bekommen!!
oder kann ich anstatt ip nur www.seite.de oder http://ww.seite.de eingeben?!
du kannst es ja mal mit www.seite.de (natürlich den richtigen Rechnernamen verwenden...) versuchen (wenn der DB Server auf dem selben Rechner läuft).
Es sieht aber so aus als ob der Fernzugriff deaktiviert wäre.
Eventuell solltest du das FAQ/HOWTO des Anbieters lesen oder den Support fragen.
Bist du sicher dass DBName und username identisch sind? (DB55555)
Dominik
Hallo!
der connect string ist dieser:
String url = "jdbc:mysql://81.209.100.06/DB55555?user=DB55555&password=password";Connection con = DriverManager.getConnection(url);
wobei ich das password und datenbanknamen geänder habe!aber der aufbau ist dieser!
die datenbank ist nicht auf meinem rechner!sondern auf meiner domain!
bist Du sicher dass die Datenbank überhaupt nach außen offen ist?
Versuche mal folgendes im der Eingabeaufforderung:
telnet 81.209.100.06 3306
Geht das? Von mir aus nicht. Versuche es mal mit dem Hostnamen, aber das wird vermutlich auch nicht gehen, da der vorher in die IP aufgelöst wird.
Wenn es funktioniert hast Du eine Verbindung zu MySQL, zumindest steht dann da _nicht_ "Verbinden Fehlgeschlagen".
beispiel: www.seite.de/mysqladmin
Verwechsele nicht die URL mit der JDBC-Schreibweise oben, das sind 2 grundverschiedene Dinge.
Was URLs sind steht hier: http://www.w3.org/Addressing/#terms
Die schreibweise von JDBC lehnt sich lediglich an diese Syntax an, macht damit aber was völlig anders, es ist lediglich eine einfache und einleuchtende Syntax eine DB-Resource zu beschreiben.
beispiel: www.seite.de/mysqladmin
Die Datenbank ist dort sicher nicht. Mag sein dass das der Pfad zu einem Administrationstool ist, aber die Datenbank ist ein eigenes Server-Programm, welches neben dem Webserver(den Du über obige URL erreichst) als Dämnonprozess läuft, und je nachdem lauscht sie evtl.(!) an Port 3306, dann kannst Du die Datenbank auch direkt per Java ansprechen.
Wenn die Datenbank aber nicht den Port 3306 abhört kannst Du Dich auf den Kopf stellen, dann werden nur Programme die auf demselben Rechner liegen wie die Datenbank selbst, sich mit dieser verbinden können(z.B. PHP oder JSP... je nachdem was verfügbar ist). Das ist eine Einstellungssache ob die DB nach außen erreichbar ist oder nicht. Die meisten Provider deaktivieren dies, um kein Sicherheitsrisiko einzugehen.
in mysqladmin ist die datenban die DB55555 heisst drin!!! und auf die habe ich zugegriffen!
Du hast es versucht. Ich kenen mich mit den Fehlermeldungen von JDBC nicht aus, ers hört sich zumindest so an als hättest Du Dich erfolgreich verbinden könnens, bist dann aber nicht akzeptiert worden. Ich bezweifele dagegen dass Du erfolgreich eine Verbindung herstellen konntest, ich gehe mal davon aus dass Du die Zugangsdaten korrekt angegeben hast.
die ip habe ich durch den ping von www.seite.de bekommen!!
Es ist durchaus möglich dass sich diese IP ändert, daher würde ich lieber den Hostnamen verwenden, der Rechner auf dem das Java-programm dann mal läuft wird dann ggfs. die IP per DNS-Abfrage heruasbekommen, das macht Dein Browser z.B. dauernd wenn Du auf neue Domainnamen gehst.
oder kann ich anstatt ip nur www.seite.de oder http://ww.seite.de eingeben?!
ersteres würde ich nehmen, http:// ist denke ich nicht erlaubt in der JDBC Syntax. Aber wie gesagt, teste per Telnet ob Du Dich überhaupt mit dem Server verbinden kannst:
Um den Unterschied zu sehen, versuche Dich mal mit dem Webserver zu verbinden:
telnet www.seite.de 80
Normalerweise bekommst Du dann ein leeres Terminal, da kannst Du dann einen HTTP-Request eingeben wie ihn ein Browser senden würde, z.B.:
GET / HTTP/1.0 [enter]
host: www.seite.de [enter]
[enter]
und danach mal mit dem MySQL-Server:
telnet www.seite.de 3306
Grüße
Andreas
PS: 3306 ist der Standardport für MySQL, evtl. wird ein anderer verwendet, auch wenn das ist eher unwahrscheinlich ist.