ich bin noch recht neu im Thema und bin mir daher nicht sicher, ob ich es richtig erkannt habe, wann der Fehler passiert.
Grundsätzlich habe ich ein Programm geschrieben dass Werte in eine SQL Datenbank schreibt. Das funktioniert auch soweit. Nur manchmal stürzt es ab, wenn versucht wird, die Verbindung zum SQL Server aufzubauen. Ob da nun der Raspi, auf dem das Programm läuft, offline ist, oder ob die Datenbank in dem Moment offline ist, weiß ich nicht.
Das Programm wirft dann einen Fehler und beendet sich. Ich hätte natürlich gerne, dass sich das Programm deswegen nciht beendet, sondern eben lieber 1x nichts einträgt und dann dafür weiterläuft und beim nächsten durchlauf der Funktion wieder versuht etwas einzutragen (irgendwann ist der Raspi oder die DB wieder online)
Hier die Fehlermeldung die mir Python wirft:
Code: Alles auswählen
Traceback (most recent call last):
File "/home/pi/.local/lib/python3.7/site-packages/mysql/connector/network.py", line 485, in open_connection
socket.SOL_TCP)
File "/usr/lib/python3.7/socket.py", line 748, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/pi/Desktop/python/temperaturen2.py", line 81, in <module>
con = mysql.connector.connect(**DATABASE_CONFIG) #datenbank verbindung
File "/home/pi/.local/lib/python3.7/site-packages/mysql/connector/__init__.py", line 179, in connect
return MySQLConnection(*args, **kwargs)
File "/home/pi/.local/lib/python3.7/site-packages/mysql/connector/connection.py", line 95, in __init__
self.connect(**kwargs)
File "/home/pi/.local/lib/python3.7/site-packages/mysql/connector/abstracts.py", line 716, in connect
self._open_connection()
File "/home/pi/.local/lib/python3.7/site-packages/mysql/connector/connection.py", line 206, in _open_connection
self._socket.open_connection()
File "/home/pi/.local/lib/python3.7/site-packages/mysql/connector/network.py", line 501, in open_connection
errno=2003, values=(self.get_address(), _strioerror(err)))
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on 'xxxmeinsqlserverxxx' (-3 Temporary failure in name resolution)
Code: Alles auswählen
con = mysql.connector.connect(**DATABASE_CONFIG) #datenbank verbindung
try:
cursor = con.cursor()
query = ...
values = ...
cursor.execute(query, values)
con.commit()
except mysql.connector.Error as error:
print("Oh no, something went wrong.\nIt was: {error}")
print("I don't know what to do, so I raise the exception!")
cursor.close()
raise
Ich bedanke mich für eure Hilfe!
Viele Grüße,
kanuddel