Seite 1 von 1

Externer mySQL-Datenbankzugriff

Verfasst: Dienstag 10. März 2020, 19:24
von Neu111
Hallo Community,
wie mein Nickname schon vermuten lässt, bin ich Python-Neueinsteiger.

Mein Ziel ist es u.a., Daten aus einer externen mySQL-Datenbank zu verarbeiten.
Mein Python-Script liegt lokal auf meinen Windows-PC, die mySQL-Datenbank dagegen auf einen Webhoster.

Ich nutze PyCharm mit Python 3.7, und habe u.a. das Modul "mysqlclient" installiert (andere mysql-Module schlugen bei der Installation auf Fehler - vermutlich weil Python in der Version 3.7 nicht unterstützt wird).

Mein Code sieht nun wie folgt aus:

Code: Alles auswählen

import MySQLdb
db = MySQLdb.connect(
    host = '',
    user = '',
    passwd = '',
    db = ''
)
Mein Webhoster hat mir für den externen Zugriff folgende Daten zur Verfügung gestellt:
Hostname:Port meineWebadresseOhneHTTP.de:22
SSH-Tunnel:Port mysqlx:xxxx (4 Zahlen)
Benutzername: bbbbb
Passwort: ccccc
Folgende Variationen wurden probiert:

Code: Alles auswählen

import MySQLdb
db = MySQLdb.connect(
    host = 'meineWebadresseOhneHTTP.de:22',
    user = 'bbbbb',
    passwd = 'ccccc',
    db = 'meinDatenbankname'
)
Fehlermeldung: "Unknown MySQL server host 'meineWebadresseOhneHTTP.de:22' (11001)"

Code: Alles auswählen

import MySQLdb
db = MySQLdb.connect(
    host = 'meineWebadresseOhneHTTP.de',
    user = 'bbbbb',
    passwd = 'ccccc',
    db = 'meinDatenbankname'
)
Fehlermeldung: "Can't connect to MySQL server on 'alfa3002.alfahosting-server.de' (10060)"


Wo liegt der Hund begraben?

Ich bin mir z.B. nicht sicher, ob der Host ohne HTTP(S) eingetragen werden muss, oder mit HTTP(S):// ?
Und wo kann/muss ich die Portangaben machen?

Für einen Lösungsansatz wäre ich sehr dankbar!

Gruß
Neu111

Re: Externer mySQL-Datenbankzugriff

Verfasst: Dienstag 10. März 2020, 20:40
von Neu111
Kurze Ergänzung: mittels Putty baute ich einen SSH-Tunnel zum Webhoster auf.

Außerdem änderte ich meinen Code wie folgt:

Code: Alles auswählen

import MySQLdb
db = MySQLdb.connect(
    host = 'meineWebadresseOhneHTTP.de',
    user = 'kkkkk', 
    passwd = 'eeeee',
    port = 3306,
    db = 'meinDatenbankname'
)
kkkkk und eeeee entsprechen den mySQL-Zugangsdaten (bbbbb und ccccc waren falsch, da sie die Zugangsdaten der SSH-Verbindung sind).

Trotzdem kommt die Fehlermeldung: "Can't connect to MySQL server on 'meineWebadresseOhneHTTP.de' (10060)"

Re: Externer mySQL-Datenbankzugriff

Verfasst: Dienstag 10. März 2020, 20:44
von __blackjack__
@Neu111: Wenn Du einen Port auf den lokalen Recher getunnelt hast dann ist die Datenbank über diesen Port auf Deinem lokalen Rechner verfügbar.

Re: Externer mySQL-Datenbankzugriff

Verfasst: Mittwoch 11. März 2020, 07:54
von Neu111
__blackjack__ hat geschrieben: Dienstag 10. März 2020, 20:44 @Neu111: Wenn Du einen Port auf den lokalen Recher getunnelt hast dann ist die Datenbank über diesen Port auf Deinem lokalen Rechner verfügbar.
Jetzt funktioniert es!
Herzlichen Dank für diesen wichtigen Hinweis.