Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zugriff auf MySQL mit der MySQL (https://www.delphipraxis.net/203832-zugriff-auf-mysql-mit-der-mysql.html)

Schuby 30. Mär 2020 11:56

Datenbank: MySql • Version: ? • Zugriff über: mysql.pas

Zugriff auf MySQL mit der MySQL
 
Sorry ich muss doch hier schreiben, in dem Tutorial schaut eh keiner rein.
Es geht um das
https://www.delphipraxis.net/6543-my...ml#post1460797
Zugriff auf MySQL mit der MySQL-C-API


ich lese mich gerade da ein und hätte eine Frage.

Da ich keine locale MySql Datenbank habe sondern meine liegt auf einen
Root Server im Internet, ich möchte diese aber nicht frei nach außen schalten
deswegen versuche ich es über eine tunnel.php
Verbindung konnte ich aufbauen.

Aber wie geht es weiter, mit php habe ich es nicht so :-)
gibts da was fertiges ? Oder könnte mir jmd mit dem tunnel.php
helfen, wäre nett von euch


mfg



Delphi-Quellcode:
<?php

error_reporting(E_ALL);

  $server  = $_POST["server"];
  $user    = $_POST["user"];
  $pass    = $_POST["pass"];
  $db      = $_POST["db"];
  $sql     = $_POST["sqlquery"];
           
//Verbindung zur Datenbank
conn = mysqli_connect ($server,
                           $user,
                           $pass,
                           $db);
     $conn = mysqli_connect($server, $user, $pass);
    if ($conn!=TRUE)
    {
      print_r( $conn);
    }
?>

stifflersmom 30. Mär 2020 14:29

AW: Zugriff auf MySQL mit der MySQL
 
Ab dieser Stelle könntest Du jetzt die Ergebnismenge in PHP aufberetite/verarbeiten/durchiterieren... und als Json Zurückgeben. Diee Rückgabe müsstest Du dann in Delphi wieder verarbeiten.

Du sagst Dein SQL liegt im Internet, hast Du da shell-Zugriff drauf?

Dann könntest Du auch versuchen, per Portforwarding Deiner SSH-Sitzung Deinen lokalen 3306 Port auf den Deines Servers "druchzurouten" und könntest dann wieder "normal" Deinen Sql-Server ansprechen ohne den Umweg über eine, wie auch immer geartete, php-Tunnel-Lösung.

Schuby 30. Mär 2020 14:41

AW: Zugriff auf MySQL mit der MySQL
 
Zitat:

Zitat von stifflersmom (Beitrag 1460826)
Du sagst Dein SQL liegt im Internet, hast Du da shell-Zugriff drauf?

Ja ist mein Root Server.
Habe volle Rechte drauf.


mfg

stifflersmom 30. Mär 2020 17:02

AW: Zugriff auf MySQL mit der MySQL
 
Dann ist die Kommunikation über den SSH-Tunnel eine saubere und sichere Sache.
Das läßt sich auch noch per Kommandozeile automatisieren, ich glaube über Plink/Putty.

Schuby 30. Mär 2020 18:31

AW: Zugriff auf MySQL mit der MySQL
 
Das bekomme ich nicht hin, davon habe ich keine Ahnung.

mfg

stifflersmom 30. Mär 2020 18:38

AW: Zugriff auf MySQL mit der MySQL
 
Ist wirklich ziemlich einfach:

https://linuxize.com/post/mysql-ssh-tunnel/

Schuby 31. Mär 2020 12:47

AW: Zugriff auf MySQL mit der MySQL
 
Zitat:

Zitat von stifflersmom (Beitrag 1460864)
Ist wirklich ziemlich einfach:

https://linuxize.com/post/mysql-ssh-tunnel/

Ich habe mich mal bissel eingelesen, so wie ich das sehe
kann ich auch über putty einen SSH Tunnel aufbauen
und solange putty offen ist kann ich auch auf meine
Datenbank zugreifen, ist das richtig ?


Ich habe eine Anleitung gefunden, tja wie teste ich jetzt ob
ich zugriff auf meine Datenbank habe.
https://jweiland.net/know-how/datenbanken.html#c2565


mfg

stifflersmom 31. Mär 2020 16:55

AW: Zugriff auf MySQL mit der MySQL
 
Zitat:

Zitat von Schuby (Beitrag 1460926)
Zitat:

Zitat von stifflersmom (Beitrag 1460864)
Ist wirklich ziemlich einfach:

https://linuxize.com/post/mysql-ssh-tunnel/

Ich habe mich mal bissel eingelesen, so wie ich das sehe
kann ich auch über putty einen SSH Tunnel aufbauen
und solange putty offen ist kann ich auch auf meine
Datenbank zugreifen, ist das richtig ?
mfg

Ja, im Grunde schon

[QUOTE=Schuby;1460926]
Zitat:

Zitat von stifflersmom (Beitrag 1460864)
Ist wirklich ziemlich einfach:

Ich habe eine Anleitung gefunden, tja wie teste ich jetzt ob
ich zugriff auf meine Datenbank habe.
https://jweiland.net/know-how/datenbanken.html#c2565

mfg

Ganz grob:
* einen mysql-Benutzer erstellen, der sich von localhost anmelden darf
* ssh-verbindung inkl. tunnel von Deinem lokalen 3306 auf den remote (das ist dann localhost vom Server) 3306 einrichten
* mit delphi und den Zugriffskomponenten Deiner Wahl einen Connect auf den Datenbankserver unter der Adresse localhost und den Zugangsdaten, die Du oben eingerichtet hast, durchführen

Schuby 31. Mär 2020 17:18

AW: Zugriff auf MySQL mit der MySQL
 
Hallo
einen MySql Benutzer habe ich angelegt.
Mit dem komme ich auch in putty rein //MariaDB [(none)]>
soweit so gut, aber in putty den befehl eingeben haut nicht hin
jedenfalls die Befehle die ich gefunden habe um einen Tunnel
bereit zu stellenm ich denke es liegt daran das mein ssh nicht
auf 22 läüft sondern viel höher 44422.

Und dann noch was, ich habe ein Public Key Authentifizierung.!



mfg

stifflersmom 31. Mär 2020 17:27

AW: Zugriff auf MySQL mit der MySQL
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das hat erst mal nichts mit Deinem ssh-Port zu tun.
Anbei mal ein Bild, das zeigt wo Du wie die Porteinstellung in Putty vornimmst.

Aber zuerst mal meldest Du dich mit ssh auf deinem Server an und dann kannst Du Deinen neuen mysql (mariadb) zugangsdaten testen. Wenn das soweit klappt, dann trag mel den tunnel in Putty ein und dann kannst Du den Zugang von Delphi aus testen.

Die publickey Authentifizierung stört nicht.

Schuby 31. Mär 2020 18:25

AW: Zugriff auf MySQL mit der MySQL
 
Hallo stifflersmom
genau das habe ich auch gemacht.. aber

ich habe mir Heidisql.exe gesaugt und konnte damit auf meine
Datenbank sofort zugreifen, jetzt versuche ich über Delphi eine
Komponente zu finden mit der ich die Datenbank ansprechen kann.

Ich hoffe das heidisql.exe den tunnel auch für mein delphi
aufgemacht hat, oder nur für sich? ne glaube ich nicht :-)

ich versuche jetzt mal mit delphi kontakt zu bekommen.
ich dachte an TSQLConnection1


mfg

stifflersmom 1. Apr 2020 07:35

AW: Zugriff auf MySQL mit der MySQL
 
Nun, welche Komponente Du nutzen willst hängt von Dir, Deiner Delphiversion ab.
Ich persönlich nutze die Komponenten von microOLAP und bin ganz zufrieden.

Schuby 1. Apr 2020 12:19

AW: Zugriff auf MySQL mit der MySQL
 
Hallo stifflersmom,
also ich habe jetzt 2 Programm die auf meine externe mysql zugreifen können.
1. Heidisql.exe
2. MySQLWorkbench.exe

3. putty.exe

In putty komme ich auch auf die mysql daten.
mysql -u [Benutzer] -p

Aber über Delphi der SQLConnection1 komme ich einfach
nicht drauf. SQLConnection1 sagt immer Benutzer oder Passwort falsch.



mfg

stifflersmom 1. Apr 2020 14:57

AW: Zugriff auf MySQL mit der MySQL
 
Wenn Du mit HeidiSQL und der Workbench über localhost und den somit angelegten Tunnel auf die extene Datenbank zugreifen kannst,
dann muss der Fehler in Deiner Konfig in Delphi liegen.
Evtl. falsche libmysql.dll im Suchpfad?

Oder hast Du vielleicht noch einen lokalen mysql-Server laufen und das nur vergessen, und mit Heidi und der Workbench greifst Du auf diese Instanz zu?

Schuby 1. Apr 2020 15:52

AW: Zugriff auf MySQL mit der MySQL
 
Das ist es was ich nicht verstehe, wenn HeidiSQL und auch Workbench auf meine externe Datenbank
über localhost zugreifen kann, warum das mein Delphi Programm nicht,

HeidiSQL und auch Workbench habe ich geschlossen und xampp installiert, auch hier
sagt mein SQLConnection1 Benutzer oder Passwort falsch wenn ich auf die localhost
Datenbank von xampp zugreifen möchte.

Bei HeidiSQL und auch Workbench muss man den ssh Tunnel selber eingeben,
die erstellen selber einen ssh tunnel, da braucht man putty nicht mehr.
Also müsste doch dann für andere Programme der tunnel offen sein.

Halt... das fällt mir gerade ein..
Ich starte HeidiSQL mit tunnel und dann Workbench ohne tunnel nur mit localhost
mal sehen ob ich drauf komme.

ansonsten kann das nur noch an mein Delphi config dll liegen.



mfg

Schuby 1. Apr 2020 16:00

AW: Zugriff auf MySQL mit der MySQL
 
So ich habe es gerade getestet.
HeidiSQL habe ich mit ssh Tunnel gestartet und komme drauf.
Dann habe ich Workbench ohne ssh Tunnel gestartet und komme
auch auf meine Datenbank auf meinen RootServer local drauf.

Jetzt kann ich sagen das der Tunnel über localhost steht.

Es muss an mein delphi liegen.


mfg

stifflersmom 1. Apr 2020 17:26

AW: Zugriff auf MySQL mit der MySQL
 
Ehrlich gesagt, kann ich mich nur noch dunkel an die Zeit erinnern, als der ich es mit Bordmitteln von Delphi versucht habe mit einer Mysql-Instanz zu verbinden.
Und ich glaube, wenn ich es überhaupt hinbekommen habe, es war ein ziemliches Gefrickel mit der passenden dll zur im Objektinspektor ausgewählten mysql-Version.
Iirgendwie bin ich dann zu microOLAP gekommen und habe es nicht bereut. Kostet zwar ein paar Euro, aber die die sind es wirklich wert.
Wenn Du die mal ausprobieren möchtest, es gibt eine Testversion zum runterladen:

https://www.microolap.com/products/c...ldac/download/

Schuby 1. Apr 2020 18:03

AW: Zugriff auf MySQL mit der MySQL
 
Oh da gibts aber viel zu saugen, kannst du mir den namen sagen ?


Ist das diese [DAC for MySQL Without Sources] ?

mfg

Schuby 1. Apr 2020 18:35

AW: Zugriff auf MySQL mit der MySQL
 
Liste der Anhänge anzeigen (Anzahl: 1)
Lieber stifflersmom ich muss mich bei dir für die Hilfe bedanken.
Du hast mir wirklich geholfen.


Habe die Testversion gesaugt / Installiert / und SOFORT auf die Datenbank gekommen.


Danke.


mfg

stifflersmom 2. Apr 2020 09:22

AW: Zugriff auf MySQL mit der MySQL
 
Na dann, viel Spaß!

Rollo62 2. Apr 2020 18:22

AW: Zugriff auf MySQL mit der MySQL
 
Ist vielleicht schon erledigt, aber als alternative könntest Du vielleicht Wordpress installieren.
Das bringt schon eine REST-API mit, und die könnte man erweitern.
Der Vorteil: Wordpress hat schon Konzepte für Ahthorization, etc. mit drin,
und ist eigentlich relativ schlank.

https://developer.wordpress.org/rest...-the-rest-api/

Schuby 3. Apr 2020 10:34

AW: Zugriff auf MySQL mit der MySQL
 
Zitat:

Zitat von Rollo62 (Beitrag 1461108)
Ist vielleicht schon erledigt, aber als alternative könntest Du vielleicht Wordpress installieren.
Das bringt schon eine REST-API mit, und die könnte man erweitern.
Der Vorteil: Wordpress hat schon Konzepte für Ahthorization, etc. mit drin,
und ist eigentlich relativ schlank.

https://developer.wordpress.org/rest...-the-rest-api/

Erledigt ist das noch nicht, ich werde weiter suchen.
So wie ich die sache sehe brauche ich die richtige dll Datei für meine MySql Datenbank im Internet.


mfg

Schuby 3. Apr 2020 18:06

AW: Zugriff auf MySQL mit der MySQL
 
Es kann so einfach sein wenn man weiß wie...

Die libmysql.dll in Embarcadero\RAD Studio\9.0\bin64 und dann hat es auch sofort hin.


mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz