MySQL über Webserver
MySQL über Webserver
Ich bin mal am Optionen vorsortieren. Bin nicht gerade ein Lazarus Datenbank Guru.
Ich muss eventuell mit einem entfernten MySQL Server arbeiten.
Das müsste ja eigentlich gehen mit Zeos oder MySQLConnection über die HostName Einstellung, stimmt das?
Nun meine eigentliche Frage: Mal angenommen der MySQL Port (68schlagmichtot) ist durch eine Firewall geblockt.
Welche Möglichkeiten habe ich, unter der Voraussetzung das dort nur der Webserver:80 mit PHP erreichbar sind?
Ich hab mal gesucht und ein PHP Script gefunden, was SQL-Queries entgegenimmt und XML Daten zurückliefert.
Das funzt soweit, ist aber natürlich nicht das Gelbe vom Ei, weil man alles manuell machen muss.
Es gibt wohl keine TMySQLXMLWebConnection oder sowas, damit man die Data Controls oder TSQLQuery etc. verwenden könnte, stimmt's?
Fällt euch zu dem Thema etwas besseres ein?
Wäre es wohl schwierig, einen solchen "Treiber" selber zu schreiben?
Ich muss eventuell mit einem entfernten MySQL Server arbeiten.
Das müsste ja eigentlich gehen mit Zeos oder MySQLConnection über die HostName Einstellung, stimmt das?
Nun meine eigentliche Frage: Mal angenommen der MySQL Port (68schlagmichtot) ist durch eine Firewall geblockt.
Welche Möglichkeiten habe ich, unter der Voraussetzung das dort nur der Webserver:80 mit PHP erreichbar sind?
Ich hab mal gesucht und ein PHP Script gefunden, was SQL-Queries entgegenimmt und XML Daten zurückliefert.
Das funzt soweit, ist aber natürlich nicht das Gelbe vom Ei, weil man alles manuell machen muss.
Es gibt wohl keine TMySQLXMLWebConnection oder sowas, damit man die Data Controls oder TSQLQuery etc. verwenden könnte, stimmt's?
Fällt euch zu dem Thema etwas besseres ein?
Wäre es wohl schwierig, einen solchen "Treiber" selber zu schreiben?
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: MySQL über Webserver
Was genau darfst du am Fremden DB-Server ? Nur PHP oder auch mehr ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: MySQL über Webserver
Naja, das Ziel ist, ein Tool zu basteln, welches im Prinzip "überall" läuft. Webserver/PHP/ MySQL sind vorausgesetzt.af0815 hat geschrieben:Was genau darfst du am Fremden DB-Server ? Nur PHP oder auch mehr ?
Mehr idealerweise nicht.
Was wäre denn dein "mehr"?
Re: MySQL über Webserver
Sofern der MySQL-Server ein Zugriff von extern zulässt, ja.Ich muss eventuell mit einem entfernten MySQL Server arbeiten.
Das müsste ja eigentlich gehen mit Zeos oder MySQLConnection über die HostName Einstellung, stimmt das?
Standard-Port ist 3306.Nun meine eigentliche Frage: Mal angenommen der MySQL Port (68schlagmichtot) ist durch eine Firewall geblockt.
Im Prinzip, keine.Welche Möglichkeiten habe ich, unter der Voraussetzung das dort nur der Webserver:80 mit PHP erreichbar sind?
Viel anderes kannst du aber nicht machen, du musst also ein PHP-Script haben welches die Querys entgegen nimmt und ausführt und dir die Daten als Rohform übergibt.Ich hab mal gesucht und ein PHP Script gefunden, was SQL-Queries entgegenimmt und XML Daten zurückliefert.
Das funzt soweit, ist aber natürlich nicht das Gelbe vom Ei, weil man alles manuell machen muss.
Das kann csv, xml oder sonstiges sein was du dann entsprechend in der Applikation weiter verarbeiten musst.
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Re: MySQL über Webserver
Wenn es überall laufen soll, kommst du über den PHP-Umweg nicht herum. Quasi auf jedem Server ist der direkte DB-Zugriff außerhalb von localhost geblockt. Die Bedingung für "mehr" wäre den DB-Zugriff für externe zu aktivieren. Das ist aber aus Sicherheitsgründen nicht wirklich gerne gesehen.
Eventuell hilft dir aber das folgende weiter, dein Vorhaben eines Treibers wurde da schon sehr ähnlich durchgeführt, ich habe es aber noch nie getestet:
http://www.delphipraxis.net/148076-mysq ... l-dll.html" onclick="window.open(this.href);return false;
Eventuell hilft dir aber das folgende weiter, dein Vorhaben eines Treibers wurde da schon sehr ähnlich durchgeführt, ich habe es aber noch nie getestet:
http://www.delphipraxis.net/148076-mysq ... l-dll.html" onclick="window.open(this.href);return false;
Johannes
Re: MySQL über Webserver
Ja, das Projekt auf Delphipraxis wäre genau das. Was mich da aber zurückhält: Windows-only und kein Quellcode zur DLL.monta hat geschrieben:Wenn es überall laufen soll, kommst du über den PHP-Umweg nicht herum. Quasi auf jedem Server ist der direkte DB-Zugriff außerhalb von localhost geblockt. Die Bedingung für "mehr" wäre den DB-Zugriff für externe zu aktivieren. Das ist aber aus Sicherheitsgründen nicht wirklich gerne gesehen.
Eventuell hilft dir aber das folgende weiter, dein Vorhaben eines Treibers wurde da schon sehr ähnlich durchgeführt, ich habe es aber noch nie getestet:
http://www.delphipraxis.net/148076-mysq ... l-dll.html" onclick="window.open(this.href);return false;
Danke für alle Antworten!
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: MySQL über Webserver
Das 'mehr' wäre CGI. Wenn man es durchdenkt, so wäre eine Dataset-Komponente als Wrapper für den PHP unterstüzten Zugriff schon leichter durchzubringen. PHP ist leichter verfügbar als eine CGI zugelassen zu bekommen.theo hat geschrieben:Naja, das Ziel ist, ein Tool zu basteln, welches im Prinzip "überall" läuft. Webserver/PHP/ MySQL sind vorausgesetzt.
Mehr idealerweise nicht.
Was wäre denn dein "mehr"?
Wenn es für PHP und ASP.net geht dann hat man eigentlich (fast) alle Welten offen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 512
- Registriert: Mo 25. Aug 2008, 18:17
- OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
- CPU-Target: x86
- Wohnort: Chemnitz
Re: MySQL über Webserver
Muss nichtmal CGI sein. Man könnte auch in PHP einen Webservice aufsetzen - das wäre genaugenommen sogar Datenbankunabhängig.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: MySQL über Webserver
Muss doch nicht unbedingt PHP sein (obwohl PHP möglicherweise dafür tatsächlich praktisch ist). Du kannst auch in mit Lazarus ein CGI-Programm machen, das lokal auf dem Server eine Verbindung zur Datenbank aufbaut und nach außen über den Webserver mit dem entfernten Client kommuniziert. Dafür gibt es eine ganze Menge freie Tools.theo hat geschrieben:Nun meine eigentliche Frage: Mal angenommen der MySQL Port (68schlagmichtot) ist durch eine Firewall geblockt.
Welche Möglichkeiten habe ich, unter der Voraussetzung das dort nur der Webserver:80 mit PHP erreichbar sind?
Wenn Du Geld ausgeben willst/kannst, könnte vielleicht DataAbstract von RemObjects hilfreich sein.
-Michael
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: MySQL über Webserver
Wenn es auf PHP zugreifen/zusammenarbeiten kann, so hat das seinen Vorteil, das PHP ganz einfach fast überall verfügbar ist. Bei CGI gibt es da oft schon Probleme mit den Vorgaben/Richtlinien von Firmen.mschnell hat geschrieben:Muss doch nicht unbedingt PHP sein (obwohl PHP möglicherweise dafür tatsächlich praktisch ist). Du kannst auch in mit Lazarus ein CGI-Programm machen, das lokal auf dem Server eine Verbindung zur Datenbank aufbaut und nach außen über den Webserver mit dem entfernten Client kommuniziert. Dafür gibt es eine ganze Menge freie Tools.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: MySQL über Webserver
Ja. Nur darum geht's. PHP läuft "immer", alles andere wie Ports öffnen, CGI, etc. wird schon schwieriger.af0815 hat geschrieben: Wenn es auf PHP zugreifen/zusammenarbeiten kann, so hat das seinen Vorteil, das PHP ganz einfach fast überall verfügbar ist. Bei CGI gibt es da oft schon Probleme mit den Vorgaben/Richtlinien von Firmen.
Man könnte auch mit SSH tunneln, das muss aber auch eingerichtet werden.
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: MySQL über Webserver
Steht bei uns zB. auf der 'Roten Liste' = Forbidden, genauso wie Ports öffnen. Es geht nur über PHP oder .net und Webserver.theo hat geschrieben:Man könnte auch mit SSH tunneln, das muss aber auch eingerichtet werden.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: MySQL über Webserver
Wenn ich mich nicht irre:af0815 hat geschrieben:, das PHP ganz einfach fast überall verfügbar ist. Bei CGI, etc. wird schon schwieriger.
PHP ist immer CGI (Der PHP Interpreter wird als CGI-Programm vom Webserver aufgerufen und führt dann das PHP-Script aus).
Prinzipiell kann ein CGI-Programm in jeder Programmiersprache erstellt werden.
Wenn der Webserver auf einer Linux-Maschine läuft (das ist wohl in den meisten Fällen so), kann auch jedes Script automatisch seinen passenden Interpreter starten wenn es mit einer Zeile #!<interpreter-executable> beginnt(Die Script Datei muss dann das Executable-Flag gesetzt haben)
#!/bin/bash
echo hallo
Ist ein CGI-Programm, das fast überall laufen sollte.
-Michael
Re: MySQL über Webserver
@mschnell: Es geht nicht um Technik, sonder nur um die Praxis.
Viele Provider lassen beliebige Executables (CGI), SSH und Firewall öffnen nicht zu.
Darum geht's. Ausserdem sehe ich den Vorteil von CGI nicht. Das ist auch nur ein Prozess der nach Abarbeitung des Requests verschwindet. Die Datenbankverbindung lässt sich so auch nicht halten.
Viele Provider lassen beliebige Executables (CGI), SSH und Firewall öffnen nicht zu.
Darum geht's. Ausserdem sehe ich den Vorteil von CGI nicht. Das ist auch nur ein Prozess der nach Abarbeitung des Requests verschwindet. Die Datenbankverbindung lässt sich so auch nicht halten.
-
- Beiträge: 512
- Registriert: Mo 25. Aug 2008, 18:17
- OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
- CPU-Target: x86
- Wohnort: Chemnitz
Re: MySQL über Webserver
Mit FastCGI schon ... die Prozesse bleiben nämlich laufen.theo hat geschrieben:Ausserdem sehe ich den Vorteil von CGI nicht. Das ist auch nur ein Prozess der nach Abarbeitung des Requests verschwindet. Die Datenbankverbindung lässt sich so auch nicht halten.