MySQL Zugriff auf Remote-DB verweigert

kavuch

Mitglied
Ich habe eine Domain bei Strato mit 2 MySQL-Datenbanken. Mit PHP kann ich problemlos darauf zugreifen, allerdings erhalte ich folgende Fehlermeldung, wenn ich mit Java (JDBC) drauf zugreife:
SQLException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
Genau das Gleiche passiert, wenn ich versuche, auf die kostenlose DB db4free.net zuzugreifen.
Mit einer lokalen DB (MySQL mit XAMPP) funktioniert alles problemlos (am Code liegt es also nicht).

Jetzt habe ich erfahren, dass beide Anbieter den JDBC-Zugang verbieten.
Kennt jemand eine Möglichkeit, das Problem zu lösen?
Ich möchte zu keinem anderen kostenpflichten Anbieter wechseln, weil ich die DB nur ca. 1 Monat brauche.
 
Marcinek hat gesagt.:
Den Provider kontaktieren.
Das habe ich schon gemacht, allerdings waren sie nicht bereit, etwas zu ändern.
Marcinek hat gesagt.:
Php webservice schreiben.
An einen Webservice habe ich auch schon gedacht, Erfahrung mit PHP habe ich auch, allerdings nicht genug, um JDBC-Requests zu verarbeiten und entsprechende Daten zurückzuschicken.
Gibt es sowas schon als Download?
Marcinek hat gesagt.:
Sufu oder google nutzen.
Das habe ich schon gemacht, sitze nämlich schon seit Tagen an diesem Problem...
 
Im zweiten fall kann man ja google befragen. Man soll ja niht jdbc Anfragen verarbeiten sondern SQL. Machst ein http request mit der SQL und bekommst dann eine csv Datei als Ergebnisse im einfachsten fall. Danach kümmerst du dich noch um Authentifizierung.
 
@TO
das ist eine allgemeine sicherheitsrichtlinie und bei allen größeren datenbank-systemen default : access von außen wird untersagt ... oder : verbindungen zur datenbank sind nur über localhost und damit nur von genau dem rechner möglich auf dem die datenbank selbst läuft ...

gerade bei MySQL war das eigentlich schon immer so ...

und ich glaube nicht das es sinn macht den provider zu bitten das nur für dich zu ändern ... denn das wird aus sicherheitstechnischen gründen niemand machen ...

du hättest die möglichkeit gehabt dies selbst einzustellen wenn du dir einen vServer gemietet hättest und damit selbst root der datenbank wärst *sorry ... aber strato ist nicht so der beste hoster* ... aber so lange du das irgendwo "free" hast ... oder zumindest keinen ROOT access zur datenbank hast *der ebenfalls grundsätzlich nur über localhost möglich ist ... zumindest sollte er das* wirst du da nichts machen können ...

und das es bei dir läuft ist logisch da du ja die bedingung "HOST=LOCALHOST" erfüllst ...


google hätte dir das übrigens auch sagen können ...
 
Marcinek hat gesagt.:
Im zweiten fall kann man ja google befragen. Man soll ja niht jdbc Anfragen verarbeiten sondern SQL. Machst ein http request mit der SQL und bekommst dann eine csv Datei als Ergebnisse im einfachsten fall. Danach kümmerst du dich noch um Authentifizierung.
Das würde ich nicht so machen, weil es ermöglicht, SQL übers Internet zusenden (Sicherheit) und weil es mit csv als Ausgabe auch nicht wirklich für eine Online-Verarbeitung geeignet ist. Definier Dir die Abfragen, die Deine Anwendung braucht, z.B. "Lade alle Studenten", definier diese Abfragen als Webservice-Methode (SOAP oder REST, was Dir lieber ist) und gib die Ergebnisse als XML oder JSON zurück. Das macht es Dir auf Java-Seite auch einfacher, daraus Java-Objekte zu erstellen.
 
Ich habe den einfachsten Fall skiziert.

Er braucht es nur einen Monat (Aufwand <=> Nutzen)
 

Neue Themen


Zurück
Oben