一.背景介绍
最近在学习如何利用pyside6制作一些界面,在网上学习项目式碰到了要运用数据库mysql的情况,在配置数据库连接时一直出现驱动未加载的错误,多次尝试pyside6无果,于是转而尝试资料攻略较多的pyqt5。测试代码与错误显示如下
from PyQt5.QtSql import QSqlDatabase, QSqlError
from PyQt5.QtCore import QT_VERSION_STR
from PyQt5.Qt import PYQT_VERSION_STR
print("Qt 版本:", QT_VERSION_STR)
print("PyQt 版本:", PYQT_VERSION_STR)
print(QSqlDatabase.drivers())
db = QSqlDatabase.addDatabase('QMYSQL')
db.setHostName("localhost")
db.setPort(3306)
db.setDatabaseName('stusystem')
db.setUserName('root')
db.setPassword('fdirenjie')
if db.open():
print("数据库连接成功!")
else:
print("数据库连接失败!错误信息")
二.解决方法
明显显示可用的驱动中不包括QMYSQL。参考多篇文章后发现以下这篇文章后方法可行,于是记录一下。总共需要三个文件。python用pyqt5连接mysql数据库QSqlDatabase最新可用终极解决方法_pyqt5数据库操作_小X天天向上的博客-CSDN博客1. libmysql.dll文件 : 先将MYSQL中C:\Program Files\MySQL\MySQL Router 8.0\lib\libmysql.dll(有的是选MySQL Server 8.0)中的dll文件复制到C:\Users\fzy\AppData\Local\Programs\Python\Python310\Lib\site-packages\PyQt5\Qt5\bin目录下
2. qsqlmysql.dll和qsqlmysqld.dll文件 :通过测试代码查找到qt与pyqt的版本,我的都是目前最新版本的,以qt的5.15.2版本为主,在Releases · thecodemonkey86/qt_mysql_driver (github.com) 网站中找到对应的zip文件下载(注意64位与32位)。
将qsqlmysql.dll和qsqlmysqld.dll文件复制到C:\Users\fzy\AppData\Local\Programs\Python\Python310\Lib\site-packages\PyQt5\Qt5\plugins\sqldrivers目录下。再次运行测试程序,发现数据库连接成功,可执行驱动中多出QMYSQL。