Zugriff auf mysql-Datenbank

Spezielle Fragen zu PostgreSQL, MySQL, SQLite, SQL ...
Antworten
Werner
Foriker
Beiträge: 4
Registriert: Sa 17. Okt 2020, 00:01
Kontaktdaten:

Zugriff auf mysql-Datenbank

Beitrag von Werner » Sa 17. Okt 2020, 11:53

Hallo an alle,

ich arbeite seit kurzem mit Gambas 3.
Dazu hätte ich mal eine Frage zum Mysql-Datenbankzugriff über einen internen Server.
Der schematische Aufbau sieht folgendermaßen aus: Arbeitsrechner -> interner Server -> externer Server (Mysql-Datenbank beim Webhoster)
Folgendes habe ich bis jetzt ausprobiert: Zugriff auf die Datenbank funktioniert

Code: Alles auswählen

Public $con As New Connection
Public Procedure Connect()
  $con.Type = "mysql"
  $con.Host = "öffentliche IP-Adresse"
  $con.Port = "3306"
  $con.Name = "Name der Datenbank"
  $con.Login = "Benutzer"
  $con.Password = "Passwort"
End
Mit dem internen Server verbinde ich mich so:

Code: Alles auswählen

Public sVerbindung As Socket
Public Sub Button1_Click()
  sVerbindung = New Socket
  sVerbindung.Connect("192.168.35.10", "3128")
End
Wie kann ich eine Datenbankverbindung über die interne Verbindung herstellen?

Gruß Werner

Benutzeravatar
tionov
Site Admin
Beiträge: 357
Registriert: So 18. Mai 2014, 22:40
Kontaktdaten:

Re: Zugriff auf mysql-Datenbank

Beitrag von tionov » So 18. Okt 2020, 11:50

Du kannst Mysql auf deinem eigenen Computer AFAIK entweder über den Socket oder TCP/IP ansprechen.

Für ersteres nimmt man als Hostname den Pfad zur Socket-Datei und für zweiteres Hostname (und eventuell Port). Es sollte also so gehen:

Socket:
gambas code
Public Procedure Connect()
  $con.Type = "mysql"
  $con.Host = "/pfad/zum/socket" ' z. B. /var/run/mysqld/mysqld.sock
  $con.Name = "Name der Datenbank"
  $con.Login = "Benutzer"
  $con.Password = "Passwort"
End
TCP/IP:
gambas code
Public Procedure Connect()
  $con.Type = "mysql"
  $con.Host = "localhost"
  $con.Name = "Name der Datenbank"
  $con.Login = "Benutzer"
  $con.Password = "Passwort"
End
Socket ist schneller.

Siehe http://gambaswiki.org/wiki/comp/gb.db/_connection/host
Alles Gute,

tionov

Werner
Foriker
Beiträge: 4
Registriert: Sa 17. Okt 2020, 00:01
Kontaktdaten:

Re: Zugriff auf mysql-Datenbank

Beitrag von Werner » Mo 19. Okt 2020, 17:40

Hallo tionov,

danke für die Antwort.
Das Problem bei meiner mysql Datenbank ist die, ich greife nicht lokal auf die Datenbank zu, sondern über das Internet bei meinem Webhoster.
Ich möchte nur der Mysql-Verbidung sagen, benutze den internen Server zur Weiterleitung.
So z.B als Proxyserver.
Ist das überhaupt so machbar???


Gruß Werner

Benutzeravatar
tionov
Site Admin
Beiträge: 357
Registriert: So 18. Mai 2014, 22:40
Kontaktdaten:

Re: Zugriff auf mysql-Datenbank

Beitrag von tionov » Mo 19. Okt 2020, 18:09

Ach so, ok das hatte ich nicht verstanden/richtig gelesen (immer zu schnell ...). Jetzt sehe ich auch: 3128 ist ja der Port des Squid Proxy. Aber das ist ein Http Proxy, der kann keine anderen Protokolle.

So was lässt sich schon machen, dann aber über SSH-Tunnel oder eventuell auch einen SOCKS Proxy auf dem internen Server. Im Falle von DB-Zugriffen solltest du unbedingt die Verbindung verschlüsseln.

Ich verstehe jetzt aber nicht, warum du nicht den direkten Weg gehst (Arbeitsrechner -> externer Server). Hat das was mit einer Firewall zu tun?
Alles Gute,

tionov

Werner
Foriker
Beiträge: 4
Registriert: Sa 17. Okt 2020, 00:01
Kontaktdaten:

Re: Zugriff auf mysql-Datenbank

Beitrag von Werner » Mo 19. Okt 2020, 21:14

Kein Problem, passiert in der Eile.. :D

Normal könnte man direkt zugreifen, richtig.
Mein Ziel ist es, dies auch über einen Proxy hinzubekommen.
Nur habe ich noch keine richtigen Infos gefunden, wie man so etwas umsetzt.
Hättest du vielleicht einen guten Tip???

Gruß Werner

Benutzeravatar
tionov
Site Admin
Beiträge: 357
Registriert: So 18. Mai 2014, 22:40
Kontaktdaten:

Re: Zugriff auf mysql-Datenbank

Beitrag von tionov » Mo 19. Okt 2020, 22:28

Werner hat geschrieben:
Mo 19. Okt 2020, 21:14
Mein Ziel ist es, dies auch über einen Proxy hinzubekommen.
Nur habe ich noch keine richtigen Infos gefunden, wie man so etwas umsetzt.
Hättest du vielleicht einen guten Tip???
Ein Socks Proxy auf dem Zwischenserver.

https://wiki.debian.org/SOCKS

Ich verwandte zuletzt hpsockd. Eine Klammerwüste zu konfigurieren, aber wenn er läuft, läuft er. Da musst du dich aber selber durchkämpfen, weil ich mir jedesmal, wenn ich ihn mir ansehe, die Sache wieder neu draufschaffen muss.

Und man kann auch OpenSSH zum Socks Server machen:
https://debian-administration.org/artic ... with_SOCKS

SSH hat den Vorteil, dass der Tunnel gleich verschlüsselt ist.
Alles Gute,

tionov

Werner
Foriker
Beiträge: 4
Registriert: Sa 17. Okt 2020, 00:01
Kontaktdaten:

Re: Zugriff auf mysql-Datenbank

Beitrag von Werner » Do 22. Okt 2020, 19:17

Hallo tionov,

ich kann doch z.B bei ubuntu in den Systemeinstellungen, einen Proxyserver eintragen.
Wie kann ich gambas dazu bringen, dass er den hinterlegten Proxy verwendet?

Gruß Werner

Benutzeravatar
tionov
Site Admin
Beiträge: 357
Registriert: So 18. Mai 2014, 22:40
Kontaktdaten:

Re: Zugriff auf mysql-Datenbank

Beitrag von tionov » Do 22. Okt 2020, 20:58

Hups, ich hoffe, ich habe dich nicht in die falsche Richtung geschickt. Ich denke, Gambas verwendet die mysql-client Libraries des Systems und die können keinen Proxy, AFAICS:

https://stackoverflow.com/questions/874 ... roxy-socks

Da steht, es geht nur über SSH (Stackoverflow solte natürlich immer mit Vorsicht genossen werden ...), also wirst du nur mittels eines SSH-Tunnels durch den Server kommen.
Alles Gute,

tionov

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast