[PYTHON] Ich erhalte [Fehler 2055], wenn ich versuche, mit Heroku eine Verbindung zu MySQL herzustellen

Überblick

Ich habe versucht, ein Python-Programm zu pushen und auszuführen, um mit Herokus ClearDB eine Verbindung zu MySQL herzustellen, konnte jedoch keine Verbindung mit der Meldung "Fehler 2055 Verbindungsverlust ~" herstellen.

Infolgedessen war es kein Fehler in Bezug auf MySQL, sondern die Art und Weise, wie das Programm geschrieben wurde, aber ich möchte es für diejenigen zusammenfassen, die unter demselben Problem leiden.

Umgebung

Was nicht in diesem Artikel zu schreiben

Ursache

Nachdem ich ClearDB hinzugefügt hatte, dachte ich zunächst, dass einige Einstellungen erforderlich sind, also untersuchte ich verschiedene Dinge und versuchte die Migration und so weiter. Ich konnte jedoch eine Verbindung zu ClearDB selbst herstellen, und selbst wenn ich das Programm ausführte, das nur durch Herstellen einer Verbindung zur Datenbank ausgeführt wird, trat kein Fehler auf, und ich konnte die Ursache nicht verstehen.

Zu diesem Zeitpunkt fand ich diesen Artikel und las ihn irgendwie, aber als Ursache für einen SQL-Operationsfehler ** Beim Ausführen einer Abfrage nach dem Trennen der Verbindung ** Wurde geschrieben. Ich hielt es für selbstverständlich und versuchte, als nächstes zu gehen, aber plötzlich schaute ich auf meinen Code und stellte fest, dass dies die Ursache war.

Weil mein Code so gemacht wurde:

main.py


#Modulimport

#Programm für Datenbankoperationen importieren
import database

#Hauptverarbeitung
    #Funktionsaufruf in Datenbank
    database.get_data()

database.py


import mysql.connector

#Legen Sie das Verbindungsziel fest und stellen Sie eine Verbindung her

def get_data():
    #Abfrage ausführen

connection.commit()
connection.close()

Wenn Sie sich diesen Artikel ansehen, wird der außerhalb der Funktion geschriebene Code basierend darauf ausgeführt, wenn "Datenbank" importiert wird. ..

Mit anderen Worten, die import database von main.py stellt einmal eine Verbindung zu SQL her, aber dieget_data ()Funktion von database.py wird nicht ausgeführt, da sie nur definiert ist, und die endgültigeVerbindung Der Fluss ist, dass die Verbindung mit .close ()geschlossen wird.

Als ich danach die Funktion mit database.get_data () in main.py aufrief, wurde die Verbindung bereits getrennt, sodass die Abfrage natürlich nicht ausgeführt werden konnte und ein Fehler auftrat.

Selbst wenn Sie nur "database.py" ausführen, ist es verständlich, dass kein Fehler auftritt, da die Verbindung nur getrennt wird, ohne dass nach der Verbindung etwas unternommen wird.

Gegenmaßnahmen

Also habe ich den Code wie folgt geändert und versucht, die Verbindung durch Aufrufen der Funktion zu trennen, und konnte ohne Fehler eine Verbindung herstellen.

main.py


#Modulimport

#Programm für Datenbankoperationen importieren
import database

#Hauptverarbeitung
    #Funktionsaufruf in Datenbank
    database.get_data()

    #hinzufügen
    database.close_db()

database.py


import mysql.connector

#Legen Sie das Verbindungsziel fest und stellen Sie eine Verbindung her

def get_data():
    #Abfrage ausführen

#Fix
def close_db()
    connection.commit()
    connection.close()

Referenz

Recommended Posts

Ich erhalte [Fehler 2055], wenn ich versuche, mit Heroku eine Verbindung zu MySQL herzustellen
Beim Versuch, maec 4.0.1.0 mit pip zu installieren, wird eine Fehlermeldung angezeigt
Ich erhalte einen UnicodeDecodeError, wenn ich versuche, mit Python sqlalchemy eine Verbindung zu Oracle herzustellen
Beim Versuch meinheld + WebSocket + mongodb wird eine Fehlermeldung angezeigt
Wenn ich versuche, Pandas unter macOS zu importieren, wird die Fehlermeldung Kein Modul mit dem Namen'_bz2 'angezeigt.
Ich erhalte eine Fehlermeldung, wenn ich versuche, Python mit pyenv in Catalina auf 3 Serien zu erhöhen
Wenn ich versuche, mit mysql-connector-python eine Verbindung zu MySQL herzustellen, kann ich keine Verbindung mit dem Fehler "SSL-Verbindungsfehler: SSL_CTX_set_tmp_dh fehlgeschlagen" herstellen.
Wenn ich eine Fehlermeldung mit Pylint unter Windows Atom erhalte
Stellen Sie eine Verbindung zu MySQL her
Über den Fehler, den ich beim Versuch, Adafruit_DHT von Python auf Raspberry Pi zu verwenden, festgestellt habe
Beim Versuch, Xgboost und seine Lösung zu installieren, ist ein Fehler aufgetreten
Die Geschichte, den Versuch aufzugeben, mit Heroku eine Verbindung zu MySQL herzustellen
Was tun, wenn beim Laden von mnist eine Fehlermeldung angezeigt wird?
Wenn ich einen Chrom-Treiberfehler in Selenium bekomme
Was tun, wenn beim Versuch, auf den Git-Hub zuzugreifen, der Fehler "Berechtigung verweigert" (öffentlicher Schlüssel) angezeigt wird?
Fehler beim Versuch, psycopg2 in Python zu installieren
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Melden Sie sich an, wenn ich befürchtet habe, dass ich unter Linux keine Verbindung zu Wi-Fi herstellen kann
Beim Versuch, Hello World in der Sprache Go auszuführen, ist eine Fehlermeldung aufgetreten
Verbinden Sie Python mit MySQL
Ich erhalte eine Fehlermeldung, wenn ich opencv in pyautoGUI einfüge
Ich bekomme "zu früh, um ein Bild zu erstellen" auf tkinter
Ich erhalte eine Fehlermeldung bei der Installation von scipy auf t2.micro, weil ich nicht genügend Speicher habe
Wenn ich versuche, mysqlclient mit Django zu installieren, wird die Fehlermeldung angezeigt: Befehl 'gcc' ist mit dem Exit-Status 1 fehlgeschlagen.
Was tun, wenn bei Verwendung von ts-node-dev unter Linux der Fehler "ERR_FEATURE_UNAVAILABLE_ON_PLATFORM" angezeigt wird?
Wenn ich versuche, mit Heroku zu pushen, funktioniert es nicht
[Lösung] Wenn ich versuche, mit GAE eine Verbindung zu CloudSQL herzustellen, wird nur bei dev_appserver ein ImportError angezeigt.
Was tun, wenn beim Versuch, pip mit pyenv zu verwenden, ein undefinierter Fehler angezeigt wird?
Ich habe einen Fehler bekommen, als ich versucht habe, Luigi parallel in Windows zu verarbeiten, aber die Lösung
Was tun, wenn beim Versuch, model.save mit Keras zu modellieren, der Fehler "get_config" überschrieben werden muss?
Freetype2-Unterstützung ist unter PIL nicht verfügbar, wenn versucht wird, unter CentOS6.5 zu blockieren
Checkpoint, wenn der LINE Parrot Return Bot von Heroku abhängig ist
Ein Memorandum beim automatischen Erwerb mit Selen
Ein Hinweis, von dem ich süchtig war, als ich unter Linux einen Piepton machte
Ich weiß nicht, wie ich Abfrageparameter in GAE / P erhalten soll
Ich habe am Wochenende versucht, mit Bitcoin Systre zu beginnen
Artikel, um zu sehen, ob sie abgelehnt werden, wenn Git Heroku Master mit Heroku drückt
Was tun, wenn "Ich kann die Site nicht sehen !!!!"
Schritte zum Installieren von MySQL 8.0 unter CentOS 8.1
Ich erhalte einen ImportError in appengine_config.py
Wie man Matplotlib auf Heroku ausführt
UnicodeEncodeError beim Versuch, Radon auszuführen
Missverständnisse beim Verbinden von cnn
Stellen Sie mit Flask SQL Alchemy eine Verbindung zu MySQL her
Wenn ich TensorFlow nach Python importiere, wird "Importfehler: DLL-Ladevorgang fehlgeschlagen: Das angegebene Modul wurde nicht gefunden" angezeigt.
Ich möchte wütend auf meine Mutter werden, wenn die Erinnerung knapp ist
Eine Geschichte, die mich süchtig nach dem Versuch machte, LightFM unter Amazon Linux zu installieren
Eine Geschichte, die ich süchtig danach war, eine Video-URL mit Tweepy zu bekommen
Wenn ich versuche, pip zu aktualisieren, werde ich nach einem Fehler aufgefordert, ein Upgrade durchzuführen und eine unbegrenzte Schleife durchzuführen
Punkte, die mich als MySQL-Anfänger oft begeistern
Ein Memorandum, weil ich beim Versuch, MeCab mit Python zu verwenden, gestolpert bin
Erhalten Sie regelmäßige Wechselkurse mit Heroku und laden Sie Protokolle zu Amazon S3 hoch
Was tun, wenn beim Versuch, eine Nachricht in task.loop () unmittelbar nach dem Start zu senden, eine Fehlermeldung angezeigt wird?
Ich erhalte den Fehler ~ ist Null, Singular U, wenn eine verteilte, gemeinsam verteilte Matrix von der linearen Schicht an MultivariateNormal übergeben wird
Ich erhalte eine Fehlermeldung beim Import von Pandas.
Stellen Sie von Flask aus eine Verbindung zum MySQL-Container von Docker her
Fehlerbehebung bei der Installation von numba unter macOS
Worauf ich mich beim Studium von tkinter bezog