Seite 1 von 1

sqlalchemy kann sich nach Serverupdate nicht mehr verbinden

Verfasst: Samstag 18. März 2023, 17:31
von Hase
Hallo,
ich betreibe flask auf einem Ubuntu-Server. Diesen habe ich letzte Woche von 20.04 auf 22.04 aktualisiert. Ich habe das venv mit Python10 neu eingerichtet und Flask läuft einwandfrei, auch mit der Datenbankanbindung zu einem mysql-Server (der seinerseits auf einem Windows-Rechner läuft).
aber:
in meinem Flask-Projekt benutze ich eine einzige Abfrage, die zwar auf den gleichen mysql-Server geht, aber auf eine andere Datenbank. Der Code sieht so aus:

Code: Alles auswählen

engine=sqlalchemy.create_engine('mysql+pymysql://xxxx:xxxx@192.186.1.2:3306/daten?charset=utf8')
con = engine.connect() #externe DB
Das ist früher immer so gelaufen, aber das funktioniert nun nicht mehr. Auch wenn ich den Flask-Server ganz abschalte und aus dem venv heraus Python starte und die obigen Zeilen in die Python-Konsole eingebe (natürlich vorher ein import sqlalchemy), dann geht es nicht. Nach engine.connect() passiert einfach nichts mehr. Gar nichts. Keine Fehlermeldung, nicht mal ein Timeout, das Programm hängt fest. Ich kann dann nur noch mit Ctrl-C einen KeyboardInterrupt machen, mehr geht nicht.

Die Datenbank gibt es und ich kann sie auch über den mysql-client erreichen, an der hat sich nichts geändert.

Hat jemand irgend eine Idee, was das sein könnte?


LG

Re: sqlalchemy kann sich nach Serverupdate nicht mehr verbinden

Verfasst: Samstag 18. März 2023, 19:27
von grubenfox
keinen blassen Schimmer, aber eine schwache Vermutung....

Von der SQLAlchemy-Seite die News:
SQLAlchemy 1.4.47 Released
Sat, 18 Mar 2023
SQLAlchemy 2.0.7 Released
Sat, 18 Mar 2023
SQLAlchemy 2.0.6 Released
Mon, 13 Mar 2023
SQLAlchemy 2.0.5 Released
Mon, 06 Mar 2023
SQLAlchemy 2.0.4 Released
Fri, 17 Feb 2023
Auf welche Version von SQLAlchemy hattest du letzte Woche geupdatetet? Zwischen Version 2.0.4 und 2.0.5 lagen noch 17 Tage, die nächsten beiden Version kamen schon nach 7 bzw. 5 Tagen. Sieht mir nach leicht hektischen Bugfix-Updates aus... was auch immer das Problem bei dir ist, vielleicht hat sich das in der neuesten Version schon erledigt.

Re: sqlalchemy kann sich nach Serverupdate nicht mehr verbinden

Verfasst: Samstag 18. März 2023, 19:50
von Hase
Python: 3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0]
Flask: 2.2.3
SQLAlchemy: 2.0.5.post1
Platform: Linux-5.15.0-67-generic-x86_64-with-glibc2.35


Die genaue Stelle, wo er hängt zeigt sich nach dem KeyboardInterrupt:

File "/home/bea3/bea3_flask/lib/python3.10/site-packages/pymysql/connections.py", line 732, in _read_bytes
data = self._rfile.read(num_bytes)
File "/usr/lib/python3.10/socket.py", line 705, in readinto
return self._sock.recv_into(b)
KeyboardInterrupt

Dazu gibt es was bei stackoverflow, was die Symptome ziemlich gut beschreibt:

https://stackoverflow.com/questions/603 ... recv-intob

Aber da bin ich mit meinem Latein am Ende. Merkwürdig halt, das die Schiene Flask-sqlalchemy funktioniert.

Re: sqlalchemy kann sich nach Serverupdate nicht mehr verbinden

Verfasst: Samstag 18. März 2023, 20:02
von sparrow
@grubenfox: Die Adjektive und Vermutungen lassen sich mit einem Blick in das changelog auflösen.

@Hase: Funktioniert denn grundsätzlich der Connect von dem Rechner auf die Zieldatenbank?

Re: sqlalchemy kann sich nach Serverupdate nicht mehr verbinden

Verfasst: Samstag 18. März 2023, 20:21
von Hase
ja, funktioniert.

Die Flask-App kann auf die Haupt-DB zugreifen. Der mysql-Client kann auch zugreifen.

Ich brauche aber für eine einzige Abfrage den Zugriff auf eine andere DB auf dem gleichen mysql-Server, wo auch die Haupt-DB läuft. Das ist das oben beschriebene Problem und das funktioniert nicht mehr.

Re: sqlalchemy kann sich nach Serverupdate nicht mehr verbinden

Verfasst: Samstag 18. März 2023, 20:35
von sparrow
Nur um nochmal sicher zu gehen: Es funktioniert von dem Rechner, auf dem die Flask App läuft, der Zugriff mit dem MySQL Client mit den Credentials, die auch die Flask App nutzt, der Zugriff auf die Zieldatenbank?

Das geht aus deinem Beitrag nicht hervor.

Re: sqlalchemy kann sich nach Serverupdate nicht mehr verbinden

Verfasst: Samstag 18. März 2023, 21:23
von Hase
also,
irgendwo in Mecklenburg steht ein Windows Server (192.168.1.2) mit einem Mysql-Server drauf. Direkt daneben steht ein Linux-Server (192.168.1.253), auf den ich SSH-Zugriff habe. Diesen habe ich von Ubuntu 20.04 auf 22.04 aktualisiert, darauf läuft die Flask-App.

Die Flask-App kann via SqlAlchemy auf den mysql-Server zugreifen.
Credentials sind:
SECRET_KEY = 'geheim'
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://xxxx:xxxx@192.168.1.2:3306/HAUPTDATENBANK?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = False


Die Flask-App kann, wenn sie läuft, NICHT folgenden Code ausführen:

Code: Alles auswählen

engine=sqlalchemy.create_engine('mysql+pymysql://xxxx:xxxx@192.186.1.2:3306/ANDEREDATENBANK?charset=utf8')
con = engine.connect()
Beim engine.connect() stoppt der Programmlauf ohne Fehlermeldung.


Ich kann dort, wenn ich per SSH auf der Linux-Maschine eingeloggt bin, von Terminal aus mittles

ubuntuserver:~$ mysql -h 192.168.1.2 -u xxxx -pxxxx

auf die Datenbank zugreifen, und zwar sowohl auf die HAUPTDATENBANK als auch auf die ANDEREDATENBANK


Die Flask-App läuft in einer Venv. Wenn ich die Flask-app ausschalte und das Venv aktiviere, kann ich folgenden Datei "test.py" nicht ausführen.

Code: Alles auswählen

import sqlalchemy
engine=sqlalchemy.create_engine('mysql+pymysql://xxxx:xxxx@192.186.1.2:3306/ANDEREDATENBANK?charset=utf8')
con = engine.connect()
Beim engine.connect() stoppt der Programmlauf ohne Fehlermeldung.

Ich hoffe, jetzt ist es genau genug, mehr weiß ich nicht.

Re: sqlalchemy kann sich nach Serverupdate nicht mehr verbinden

Verfasst: Samstag 18. März 2023, 22:09
von Hase
JA VERDAMMTER MIST NOCHMAL!

Das ist jetzt mein 100 Beitrag und ich war noch nie so beschämt: DA IST JA EIN FUC**NG Zahlendreher in der IP-Adresse.
ich war noch nie so beschämt.
ich möchte mich bei allen Leuten entschuldigen, denen ich die Zeit gestohlen habe.
Man, ist das peinlich.

Ich gehe jetzt zu Bett. Gute Nacht.

Re: sqlalchemy kann sich nach Serverupdate nicht mehr verbinden

Verfasst: Sonntag 19. März 2023, 00:39
von grubenfox
Ach, peinlich wird es erst wenn dir der Fehler zukünftig noch ein zweites Mal passiert... ;)

Re: sqlalchemy kann sich nach Serverupdate nicht mehr verbinden

Verfasst: Sonntag 19. März 2023, 11:26
von ThomasL
Definitiv wirst du zukünftig bei der Eingabe von IP-Adressen diese mehrfach auf Korrektheit kontrollieren. Kenn ich. ;-)

Re: sqlalchemy kann sich nach Serverupdate nicht mehr verbinden

Verfasst: Sonntag 19. März 2023, 11:38
von grubenfox
Es lebe die Konstante MEINE_FUC__NG_IP_ADRESSE
(Schade dass man die ** nicht in den Namen einbauen kann....)
:D

Re: sqlalchemy kann sich nach Serverupdate nicht mehr verbinden

Verfasst: Sonntag 19. März 2023, 14:26
von __blackjack__
Man kann das auch einfach ausschreiben. Kein Grund für * oder _. Die FCC hat selbst in den USA nix zu Quelltexten zu sagen. 🙂

Re: sqlalchemy kann sich nach Serverupdate nicht mehr verbinden

Verfasst: Montag 20. März 2023, 13:36
von __blackjack__
Oder man programmiert in Hy, da kann man auch * im Namen haben.

Code: Alles auswählen

(setv MEINE-FUC**NG-IP-ADRESSE "192.168.1.2")

; ...

  (setv engine (create-engine (+ "mysql+pymysql://xxxx:xxxx@"
                                 MEINE-FUC**NG-IP-ADRESSE
                                 ":3306/HAUPTDATENBANK?charset=utf8"))
        connection (.connect engine))
  ; ...