Announcement

Collapse
No announcement yet.

Mit externen Programm auf im Internet stehende MySQL-DB zugreifen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mit externen Programm auf im Internet stehende MySQL-DB zugreifen

    Hallo,

    ich möchte ein Java-Programm schreiben, mit dem User auf eine im Internet stehende MySQL-DB zugreifen können.

    Kann mir dazu jemand sagen, was zu beachten ist und wo ich code-Beispiele dazu finden kann?
    Vielen Dank schon im Voraus!

    Es Grüßt Euch,
    Marco

    P.S.: Das Java-Programm soll eine eigenständige Client-Application werden!

  • #2
    Hallo Marco,

    die zu klärende Frage wird sein, erlaubt dir dein Provider den Zugriff auf die MySQL Datenbank von ausserhalb. Die meisten Provider haben zum einen ein Firewall die dir den Zugriff von aussen verweigert über den Standardport 3306 von MySQL. Zudem kann man in MySQL selbst noch die Zugriffsrechte IP basierend beschränken. Wenn das der Fall ist, hast du keine Chance an die Datenbank zu kommen. Geniesst du jedoch das Privileg von aussen auf die Datenbank zugreifen zu können, so funktionniert das genauso einfach als ob die Datenbank lokal gespeichert wäre. Du brauchst leidglich Host, User und Password und du kannst z.B. problemlos über MyODBC die Datenbank öffnen.

    Gruss,
    Tom Peiffe

    Comment


    • #3
      Hallo Tom,<br>
      <br>
      ich betreibe den Server Testweise zu Hause.
      Das Problem ist allerdings, dass ich eine dynamische IP vom Provider zugewiesen bekomme. Das ist aber nicht so wild, da es zum testen völlig ok ist, wenn ich die IP vor Server Freigabe checken kann. Wie bekomme ich die mir zugewiesene IP heraus? und gibt es eine anleitung, wie ich mysql konfigurieren muss, damit ich von einem Interentrechner auf meine DB zugreifen kann. Du sagtes etwas von Port und Zugriffsrechten. Desweiteren muss ich praktisch eine Client-Server-Anwendung schreiben oder geht das Schreiben in die DB auch direkt? Außer ich möchte die gesendeten DAten vom Client vor schreiben in die DB noch bearbeiten. Dann brauche ich wohl die Socket-Komponente.<br>
      <br>
      Viele Grüße,<br>
      Marc

      Comment


      • #4
        Hallo Marco,

        also in Delphi würd ich die IP so auslesen:
        <PRE>function RASEnumConnections;
        external 'RASAPI32.DLL' name 'RasEnumConnectionsA';
        function RASGetProjectionInfo;
        external 'RASAPI32.DLL' name 'RasGetProjectionInfoA';

        function GetRASIP(Nr: Integer): String;
        var
        RasCon:Array[1..25] of TRasConn;
        RASSize, RASFilledInBuffer, RASIPSize: DWord;
        RASPPIp:TRasPPPIP;
        IPPas:Array[1..16] of Char;
        begin
        Result:='';
        Rascon[1].dwSize := SizeOf(TRasConn);
        RASSize := SizeOf(TRasConn);
        if RasEnumConnections(@RasCon,RASSize,RASFilledInBuff er)=0 then begin
        RASPPIp.dwsize:=SizeOf(TRASPPPIp);
        RASIPSize:=SizeOf(TRASPPPIp);
        RASGetProjectionInfo(RasCon[Nr].hRasConn,$8021,RASPPIp,RASIPSize);
        Result:=RASPPIp.szlpAddress;
        end;
        end; </PRE>

        Aber kuck dir doch mal die Seite www.dyndns.org an. Find ich ne einfachere Lösung, wie direkt über die IP Adresse zu verfahren.

        Konfigurieren musst du nach meinem Wissen nix bei MySQL, höchstens sperren falls du einige Zugriffe NICHT möchtest.

        Aber was meinst du mit "Geht das Schreiben in die DB auch direkt?"

        Gruss,
        To

        Comment


        • #5
          hallo tom,<br><br>

          bisher habe ich einen eigens programmerten server vor die MySQL-DB gesetzt, der alle Anfragen entgegennimmt und diese dann an MySQL weiterreicht. Mit direkt meinte ich eigentlich, kann ich das Serverprogramm auch weglassen und auf direktem Wege in die DB schreiben. Meine IP-Adresse bekomme ich doch auch raus, wenn ich den Befehl ipconfig im Dosfenster eingebe oder? Oder ist das nicht die mir zugewiesene IP, die mir da angezeigt wird?<br><br>

          Viele Grüße,<br>
          Marc

          Comment


          • #6
            Hallo Marco,

            wenn du auf dem Client einen MySQL Treiber installiert hast (mysql.dll, ODBC Treiber...), kannst du mit bekannten Methoden den Server natürlich direkt ansprechen. Das wird dein Zwischenserver doch sicherlich auch so handhaben.

            Was die IP Adresse angeht, kuck dir wirklich mal www.dyndns.org an. Der vergibt dir bei Einwahl ins Internet einen DNS Namen der automatisch auf deinen Rechner geroutet wird. Somit bist du IMMER von aussen unter dem gleichen Namen erreichbar, solang du online bist natürlich nur.

            Gruss,
            To

            Comment


            • #7
              Das Problem bei ipconfig ist, das du dort die IP-Adresse siehst, welche du in deinem Netzwerk hast. Dies funktioniert solange, wie der Server direkt am Internet angeschlossen ist. Wenn du also über nen Router oder so gehst, nützt die diese Adresse nur so lange etwas, wie du Netzwerkintern auf den Server zugreifen möchtest. Nicht, wenn du vom Internet her kommst

              Comment

              Working...
              X