Daten in MySQL auf einem Internet-Server verwalten..

Deutschsprachiges X#-Forum – German language forum

Moderator: wriedmann

g.bunzel@domonet.de
Posts: 97
Joined: Tue Mar 01, 2016 11:50 am
Location: Germany

Daten in MySQL auf einem Internet-Server verwalten..

Post 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
User avatar
wriedmann
Posts: 3755
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Daten in MySQL auf einem Internet-Server verwalten..

Post 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
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
g.bunzel@domonet.de
Posts: 97
Joined: Tue Mar 01, 2016 11:50 am
Location: Germany

Daten in MySQL auf einem Internet-Server verwalten..

Post 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
User avatar
wriedmann
Posts: 3755
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Daten in MySQL auf einem Internet-Server verwalten..

Post 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
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
g.bunzel@domonet.de
Posts: 97
Joined: Tue Mar 01, 2016 11:50 am
Location: Germany

Daten in MySQL auf einem Internet-Server verwalten..

Post 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
User avatar
wriedmann
Posts: 3755
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Daten in MySQL auf einem Internet-Server verwalten..

Post 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 624 times
httpComm2.png
httpComm2.png (97.57 KiB) Viewed 624 times

Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
g.bunzel@domonet.de
Posts: 97
Joined: Tue Mar 01, 2016 11:50 am
Location: Germany

Daten in MySQL auf einem Internet-Server verwalten..

Post 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
User avatar
wriedmann
Posts: 3755
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Daten in MySQL auf einem Internet-Server verwalten..

Post 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
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
User avatar
wriedmann
Posts: 3755
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Daten in MySQL auf einem Internet-Server verwalten..

Post 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
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
User avatar
wriedmann
Posts: 3755
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Daten in MySQL auf einem Internet-Server verwalten..

Post 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
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Post Reply