PyQt5连接mysql失败解决

一:背景

最近研究一个项目,里面用的Pyqt5编写的桌面应用,跑了下源码发现连接数据库那块出来问题,最终调试发现里面用的QtSql去连接mysql提示驱动找不到。

具体报错信息如下:

Could not parse stylesheet of object QTableView(0x2075e3bee20)
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
Driver not loaded Driver not loaded
二:原因分析

这里应该是缺少QMYSQL这个驱动,网上找了很多资料说是QT5.15.*版本的包里面没有这个驱动,需要自己下载源码包重新编译生成dll文件,最后尝试着下载了QT的整个源码包,按照网上的方法尝试了,最后还是提示这个驱动找不到。无奈只好寻求其他解决方案。

三:解决方案

(一)使用通用的odbc驱动来连接MySQL,我本地是windows环境需要下载mysql-connector-odbc,我是用的mysql8.0下载如下的驱动,连接如下

https://cdn.mysql.com//Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.35-win32.msi

下载完就一步一步的安装成功即可。

(二)配置

安装后,在管理工具选择odbc数据源,

填写数据库账号密码,数据库名称,测试连接如下:

PyQt5连接mysql失败解决_第1张图片

这样就连接成功了

(三)QT代码连接

db = QtSql.QSqlDatabase.addDatabase('QODBC')
db.setDatabaseName("mysql")
db.setHostName('localhost')
db.setUserName('root')
db.setPassword('root')
if not db.open():  # 判断数据库是否打开
	print(db.lastError().text())  # 打印操作数据库时出现的错误
	return False
else:
	print("连接成功")

运行代码发现连接成功了。是不是很简单,所以条条道路通罗马,技术上遇到问题,可能一种方法长时间解决不了或者解决起来很复杂,可以换一种思路,也许很快就解决了。

你可能感兴趣的:(PyQt5开发,qt,mysql,开发语言)