Andreas: von lokaler php Datei auf online mySql Datenbank zugreifen

Hallo,

ich habe eine php Datei die ich auf meinem Rechner (lokal) ausführe.
Ist es möglich das ich in dieser Datei ein INSERT auf eine mySQL Datenbank ausführe, die auf einem online Server liegt?

host, benutzer und passwort reichen als Information irgendwie nicht.
Er kann trotz aller Angaben nicht auf die mySQL DB zugreifen.

Was muss ich Einstellen/Installieren/anders machen damit das funktioniert?

Danke für eure Hilfe.

Gruß
Andreas

  1. Hello,

    Was muss ich Einstellen/Installieren/anders machen damit das funktioniert?

    es kann sein, dass du daran nichts ändern kannst. Aus Sicherheitsgründen sind DBMS bei Providern oftmals so eingestellt, dass sie nur Verbindungen vom Localhost oder Rechnern aus der nahen Umgebung zulassen. Da hast du dann pauschal mit einem externen Verbindungsversuch verloren.

    MfG
    Rouven

    --
    -------------------
    Wenn du die Nadel im Heuhaufen nicht findest, zünde den Heuhaufen an.
  2. Hallo,

    dies (externer Zugriff) muß von Deinen Provider erlaubt sein. Also beim Provider mal nachfragen!

    Gruß Andy

  3. Hello Andreas,

    ich habe eine php Datei die ich auf meinem Rechner (lokal) ausführe.
    Ist es möglich das ich in dieser Datei ein INSERT auf eine mySQL Datenbank ausführe, die auf einem online Server liegt?

    host, benutzer und passwort reichen als Information irgendwie nicht.
    Er kann trotz aller Angaben nicht auf die mySQL DB zugreifen.

    Was muss ich Einstellen/Installieren/anders machen damit das funktioniert?

    Grundsätzlich ist ein solcher Zugriff möglich.

    Daztu müssen folgende Voraussetzungen erfüllt sein:

    • Port 3306 (typisch) muss freigegen sein auf dem Datenbankserver

    • Die API für MySQL, die in PHP benutzt wird, muss zu der der Datenbank passen

    • Es muss ein User in der MySQL-DB eingerichtet sein, der von der "PHP-IP" oder
        eben generell "von außen" zugreifen darf.

    • Die Datenbank und die betroffenen Tabellen müssen für den SQL-Request ebenfalls
        freigegeben sein.

    • Die Ünertragung sollte getunnelt und verschlüsselt werden

    Hast Du denn Fehlermeldungen und/oder Statuscodes schon ausgewertet?
    Die sollten Dir genügend Hinweise für das weitere Vorgehen geben, spätestens, wenn Du sie 1:1 in Google eingibst.

    Und hier kannst Du sie dann (zusammen mit der Lösung *g*) auch nochmal posten.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Hello,

      Daztu müssen folgende Voraussetzungen erfüllt sein:

      • Port 3306 (typisch) muss freigegen sein auf dem Datenbankserver

      auf der ganzen Strecke dorthin ...

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau

    2. echo $begrüßung;

      • Die API für MySQL, die in PHP benutzt wird, muss zu der der Datenbank passen

      Das ist sehr schön allgemein gesagt. Nach meiner Erfahrung (ab MySQL 4.0) ist das nicht ganz so eng zu sehen. Wenn in PHP eine neuere MySQL-Client-API verwendet wird als die Server-API, so sollte es keine Probleme geben. In anderer Richtung ist mir nur ein zu beachtender Fall bekannt: In MySQL 4.1 wurde das Password Hashing geändert. Solange man aber die alte Methode verwendet, sollte ein Zugriff auch mit 4.0er Client-API auf 4.1er Server-API funktionieren. In aktuellen Ausgaben der Windows-Variante von PHP 4 ist beispielsweise immer noch nur die 4.0er Client-API enthalten. Mit alten Passwörtern im Server ist damit ein Zugriff auf zumindest MySQL 4.1 möglich (5.0 hab ich nicht mehr getestet. PHP 4 interessiert ja im Prinzip auch nicht mehr).

      echo "$verabschiedung $name";

      1. Hello,

        • Die API für MySQL, die in PHP benutzt wird, muss zu der der Datenbank passen

        Das ist sehr schön allgemein gesagt. Nach meiner Erfahrung (ab MySQL 4.0) ist das nicht ganz so eng zu sehen. Wenn in PHP eine neuere MySQL-Client-API verwendet wird als die Server-API, so sollte es keine Probleme geben. In anderer Richtung ist mir nur ein zu beachtender Fall bekannt: In MySQL 4.1 wurde das Password Hashing geändert. Solange man aber die alte Methode verwendet, sollte ein Zugriff auch mit 4.0er Client-API auf 4.1er Server-API funktionieren. In aktuellen Ausgaben der Windows-Variante von PHP 4 ist beispielsweise immer noch nur die 4.0er Client-API enthalten. Mit alten Passwörtern im Server ist damit ein Zugriff auf zumindest MySQL 4.1 möglich (5.0 hab ich nicht mehr getestet. PHP 4 interessiert ja im Prinzip auch nicht mehr).

        Danke für die Ergänzung.

        Soweit ich mich erinnere, wurde die Frage hier schon einmal ausführlicher behandelt. Ich heb mir faulerweise aber nur gemerkt, dass beide Enden tunlichst zusammenpassen sollten.

        MMn enthält die neue API auch neue Funktionsimplementierungen. Wenn man die Möglichkeiten einer MySQL-5-DB also vollständig nutzen will, benötigt man auch die passende API dazu.

        Das wäre auch plausibel, weil durchaus so üblich.

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

        1. echo $begrüßung;

          MMn enthält die neue API auch neue Funktionsimplementierungen. Wenn man die Möglichkeiten einer MySQL-5-DB also vollständig nutzen will, benötigt man auch die passende API dazu.

          Ja, wobei "herkömmliche" Abfragen kein Problem darstellen. Eine wesentliche neue Funktionalität ist "Prepared Statements". Dafür braucht man die Unterstützung in Server- und Client-API. Da PHP aber erst mit der mysqli-Extension, die PHP5 voraussetzt, Prepared Statements unterstützt, und mit PHP5 mindestens eine 4.1er Version der Client-API mitkommt, sehe ich da auch keine Probleme.

          Soweit ich mich erinnere, wurde die Frage hier schon einmal ausführlicher behandelt. Ich heb mir faulerweise aber nur gemerkt, dass beide Enden tunlichst zusammenpassen sollten.

          Kannst du dich noch erinnern, ob es sich um ein Wald- und Wiesen-Problem gehandelt hat, oder ob es ein Spezial-Anwendungsfall war?

          echo "$verabschiedung $name";