Hallo Ich bekomme einen Fehler, wenn ich versuche, eine Verbindung zu einer MySQL-Datenbank herzustellen.Python mysql Fehler mit Cursor
import threading
from mysql.connector import MySQLConnection, Error
from python_mysql_dbconfig import read_db_config
class Queue (threading.Thread):
def __init__(self, threadID, lock):
threading.Thread.__init__(self)
self.threadID = threadID
self.lock = lock
def run(self):
while True:
try:
dbconfig = read_db_config()
conn = MySQLConnection(**dbconfig)
cursor = conn.cursor()
except Error as e:
print(e)
finally:
cursor.close()
conn.close()
Dies ist ein gestreifter Teil des Codes, aber ich bekomme immer noch die gleichen Fehler auf der Linie nach finally:
heißt es, dass cursor
nicht definiert ist. Der Code läuft in einem Deamon auf Ubuntu.
EDIT: Einige weitere Informationen über den Code read_db_config()
from configparser import ConfigParser
def read_db_config(filename='config.ini', section='mysql'):
""" Read database configuration file and return a dictionary object
:param filename: name of the configuration file
:param section: section of database configuration
:return: a dictionary of database parameters
"""
# create parser and read ini configuration file
parser = ConfigParser()
parser.read(filename)
# get section, default to mysql
db = {}
if parser.has_section(section):
items = parser.items(section)
for item in items:
db[item[0]] = item[1]
else:
raise Exception('{0} not found in the {1} file'.format(section, filename))
return db
Und der Config-Datei mit falschen Werten
[mysql]
host = IP
database = database
user = user
password = password
EDIT2: den Code ohne die try-Anweisung Lauf gab diesen Fehler
mysql not found in the config.ini file
Kann es sein, dass meine Funktion read_db_config() die Konfigurationsdatei nicht finden kann, aber sie sich im selben Ordner befindet.
Wenn Sie eine Ausnahme vor dem 'Cursor = conn.cursor sind immer()' Linie, dann ist die cursor.close() wird wahrscheinlich scheitern ... – Bret
Okej so muss wahrscheinlich die 'conn = MySQLConnection (** dbconfig) 'ist falsch. –
Ich habe nach dem Löschen der try-Anweisung einen neuen Fehler erhalten. 'mysql nicht in der Datei 'config.ini' gefunden –