xsharp.eu • Daten in MySQL auf einem Internet-Server verwalten..
Page 1 of 4

Daten in MySQL auf einem Internet-Server verwalten..

Posted: Wed Apr 01, 2020 10:11 am
by g.bunzel@domonet.de
Hallo Zusammen,

heute kam eine Anfrage, Daten auf einem MySql-Server per Internetzugang zu verwalten. Es sollen dort Tabellen erstellt bzw. aktualisiert und Daten übertragen werden (lesen und schreiben). Ein direkter Zugriff ist aus Sicherheitsgründen nicht möglich. Der Datenaustausch soll über SSH erfolgen. Mit putty und einer Batchdatei habe ich so etwas ähnliches schon mal gemacht. Sehr viel schöner wäre natürlich ein Zugriff auf die Daten direkt aus der VO-Anwendung.
Hat jemand dazu Infos oder einen Tipp für mich?

Vielen Dank im Voraus.

Gruss

Gerhard Bunzel

Daten in MySQL auf einem Internet-Server verwalten..

Posted: Wed Apr 01, 2020 10:19 am
by wriedmann
Hallo Gerhard,
mittels putty kannst Du einen Tunnel zum Server aufbauen. Das sollte aber auch mit anderen SSH-Programmen funktionieren.
Einen anderen Weg als über einen SSH-Tunnel weiß ich nicht, wenn der Weg ssh sein soll.
Ich verwende aber einen abgeschotteten MySQL-Server aus einem VO-Programm über eine selbstgeschriebene http(s)-Schnittstelle.
Wolfgang

Daten in MySQL auf einem Internet-Server verwalten..

Posted: Wed Apr 01, 2020 10:31 am
by g.bunzel@domonet.de
Hallo Wolfgang,

vielen Dank für die schnelle Antwort.
Die Verbindung muss nicht zwingend ssh sein - wenn es eine andere, bessere Möglichkeit gibt, ist mir das auch recht. Ich würde gerne möglichst direkt auf die MySQL-Daten zugreifen für select und update. Ist das mit http(s) möglich?

Danke im Voraus.

Gerhard

Daten in MySQL auf einem Internet-Server verwalten..

Posted: Wed Apr 01, 2020 11:02 am
by wriedmann
Hallo Gerhard,
ich habe da auf dem Linux-Server eine Schnittstelle in PHP geschrieben, und das VO-Programm greift da über http drauf zu.
Wenn Du da mehr brauchst, muss ich ein (altes) Sample von einer italienischen VO-Konferenz raussuchen (wo ich das gezeigt hatte) und zur Verfügung stellen.
Wolfgang

Daten in MySQL auf einem Internet-Server verwalten..

Posted: Wed Apr 01, 2020 12:22 pm
by g.bunzel@domonet.de
Hallo Wolfgang,

vielen Dank für das Angebot mit dem Beispiel. Wäre damit ein 'relativ direkter Zugriff' auf die MySQL-Daten möglich?
Dann wäre ich sehr daran interessiert, das mal zu testen.
Vielen Dank
Gerhard

Daten in MySQL auf einem Internet-Server verwalten..

Posted: Wed Apr 01, 2020 12:31 pm
by wriedmann
Hallo Gerhard,
was verstehst Du unter "direkt"?
Hier mal zwei Stücke aus meinem Quellcode (VO-Seite):
httpComm1.png
httpComm1.png (66 KiB) Viewed 610 times
httpComm2.png
httpComm2.png (97.57 KiB) Viewed 610 times

Wolfgang

Daten in MySQL auf einem Internet-Server verwalten..

Posted: Wed Apr 01, 2020 1:12 pm
by g.bunzel@domonet.de
Hallo Wolfgang,

vielen Dank für die schnelle Antwort.
Mit 'direkt' meine ich, nicht den Umweg über eine Batchdatei - zu der dann eine Anwendung mit Parametern zur Verarbeitung gestartet werden muss.
Der Quellcode ist recht klein - das mit oInsert und der Methode AddField(..) sieht aber recht brauchbar aus. Werden hier die Datenfelder mit Werten angegeben - daraus wird dann ein SQL-Statement erstellt und das mit oHttp:ExecuteStatement ( cSelect ) an den Server zur Verarbeitung gegeben?
Damit wäre ein 'fast direkter Zugriff' auf die SQL-Daten möglich - mit dem Umweg über die Erstellung des SQL-Befehls und die Übertragung per http an den Server.
Das sieht recht gut aus - würde ich gerne mal testen.
Vielen Dank.
Gerhard

Daten in MySQL auf einem Internet-Server verwalten..

Posted: Wed Apr 01, 2020 1:21 pm
by wriedmann
Hallo Gerhard,
die Funktion zum Erzeugen eines Insert- oder Update-Statements nutze ich eigentlich in allen Applikationen, die SQL verwenden - nicht nur hier, und auch nicht nur in VO, sondern auch in X#.
Im Prinzip schickt das Programm per httpComm:ExecuteStatement() ein Update/Inser/WasAuchImmer-Statement an den Server.
Mit httpComm:GetRecordArray() bekommt man ein Objekt der Klasse PhpRecordArray zurück, das x Elemente der Klasse PhpArrayRecord enthält.
Ich habe diesen Code auch für meine X#-Applikationen neu geschrieben (und der ist mittlerweile sogar stabiler).
Ich werde den Code zusammensuchen und zur Verfügung stellen.
Der Beispiel-Code ist halt etwas älter, und da ich PHP nur sehr mangelhaft beherrsche, ist gerade die Server-Seite verbesserungsvedürftig.
Wolfgang

Daten in MySQL auf einem Internet-Server verwalten..

Posted: Wed Apr 01, 2020 1:25 pm
by wriedmann
Hallo Gerhard,
die Funktion zum Erzeugen eines Insert- oder Update-Statements nutze ich eigentlich in allen Applikationen, die SQL verwenden - nicht nur hier, und auch nicht nur in VO, sondern auch in X#.
Im Prinzip schickt das Programm per httpComm:ExecuteStatement() ein Update/Inser/WasAuchImmer-Statement an den Server.
Mit httpComm:GetRecordArray() bekommt man ein Objekt der Klasse PhpRecordArray zurück, das x Elemente der Klasse PhpArrayRecord enthält.
Ich habe diesen Code auch für meine X#-Applikationen neu geschrieben (und der ist mittlerweile sogar stabiler).
Ich werde den Code zusammensuchen und zur Verfügung stellen.
Der Beispiel-Code ist halt etwas älter, und da ich PHP nur sehr mangelhaft beherrsche, ist gerade die Server-Seite verbesserungsvedürftig.
Wolfgang

Daten in MySQL auf einem Internet-Server verwalten..

Posted: Wed Apr 01, 2020 1:29 pm
by wriedmann
Hallo Gerhard,
VO- und PHP-Code fndest Du hier:
https://riedmann.it/download/Http_Interface.zip
Dieser Code ist mittlerweile mehr als 10 Jahre alt (Oktober 2009), und mittlerweile nutze ich auch nicht mehr die cHttp-Klasse, sondern die winHttp-Klassen, die Du auch hier findest:
https://riedmann.it/verschiedenes_cavo.php
Zudem sichere ich serverseitig das Verzeichnis über Benutzername und Passwort ab, und das Ganze läuft im Produktivbetrieb sowieso über https.
Bitte sieh das nur als Beispiel, wie man sowas machen kann und nicht als Beispiel für gut geschriebenen Code!
Wolfgang