Hallo,
ich möchte mir gern über eine PyQt6 Oberfläche, eine Mysql Datenbank anzeigen lassen.
db = QtSql.QSqlDatabase.addDatabase('QMYSQL')
db.setHostName('192.168.75.130')
db.setPort(3306)
db.setUserName('myusername')
db.setPassword('mypassword')
db.setDatabaseName('My_DB')
if not db.open():
Widgets.QMessageBox.critical(None, "Database Error", db.lastError().text())
leider bekomme ich immer folgende Fehlermeldung:
Driver not loaded
Die Lösungen, die man über Google findet, funktionieren nicht. Der Mysql-Connector ist installiert. Über einen Tip würde ich mich sehr freuen.
Mit freundlichen Grüßen
Locutos
QMySQL Driver not load
- __blackjack__
- User
- Beiträge: 14132
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Die Frage ist ob da auch ein Qt-Treiber installiert und registriert ist. Was ist denn die Ausgabe von ``print(QtSql.QSqlDatabase.drivers())``?
“It is easier to change the specification to fit the program than vice versa.” — Alan J. Perlis
Also hast du kein QMySQL Plugin installiert. Die Dokumentation schreibt, wie man das Plugin baut: https://doc.qt.io/qt-6/sql-driver.html
Zum Glück gibt es Leute, die das Kompilieren für dich schon erledigt haben:
https://github.com/thecodemonkey86/qt_mysql_driver/
Zum Glück gibt es Leute, die das Kompilieren für dich schon erledigt haben:
https://github.com/thecodemonkey86/qt_mysql_driver/
Hallo in die Runde,
habe auch ein Treiberproblem.
Im Code ist nichts unterkringelt - aber in der Console gibt es folgende Fehlermeldung.
qt.sql.qsqldatabase: QSqlDatabase: can not load requested driver 'QMARIADB', available drivers: QPSQL QMARIADB QMYSQL QSQLITE QMIMER QODBC
Mit einer SQLite DB funktioniert es - was ist hier faul ?
habe auch ein Treiberproblem.
Code: Alles auswählen
from PySide6.QtWidgets import QMainWindow
from PySide6 import QtSql
from frm_main_ui import Ui_frm_main
from PySide6.QtCore import Qt
class FrmMain(QMainWindow, Ui_frm_main):
def __init__(self):
super().__init__()
self.setupUi(self)
self.show()
# Datenbankverbindung herstellen
#self.db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
#self.db.setDatabaseName("Eierlog.sqlite")
self.db = QtSql.QSqlDatabase.addDatabase("QMARIADB")
self.db.setHostName("192.168.2.10")
self.db.setPort(3306)
self.db.setUserName("user")
self.db.setPassword("Mypass")
self.db.setDatabaseName("Eierlog")
self.db.open()
qt.sql.qsqldatabase: QSqlDatabase: can not load requested driver 'QMARIADB', available drivers: QPSQL QMARIADB QMYSQL QSQLITE QMIMER QODBC
Mit einer SQLite DB funktioniert es - was ist hier faul ?
- __blackjack__
- User
- Beiträge: 14132
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@DL3AD: Das Qt-Plugin scheint da zu sein, dann wäre die Vermutung, dass dieser Bibliothek eine Abhängigkeit fehlt. Also die Bibliothek finden und schauen was die versucht zu laden. Welches Betriebssystem verwendest Du denn?
“It is easier to change the specification to fit the program than vice versa.” — Alan J. Perlis
- __blackjack__
- User
- Beiträge: 14132
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@DL3AD: Dann müsste man die entsprechende Qt *.so-Datei für das QMYSQL-Plugin finden und mal mit ``ldd`` schauen ob da alle Abhängigkeiten erfüllt sind. Also zum Beispiel ob die libmysqlclient.so gefunden werden kann.
“It is easier to change the specification to fit the program than vice versa.” — Alan J. Perlis