PyQt5连接mysql失败解决
2023-12-17 21:53:06
一:背景
最近研究一个项目,里面用的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数据源,
填写数据库账号密码,数据库名称,测试连接如下:
这样就连接成功了
(三)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("连接成功")
运行代码发现连接成功了。是不是很简单,所以条条道路通罗马,技术上遇到问题,可能一种方法长时间解决不了或者解决起来很复杂,可以换一种思路,也许很快就解决了。
文章来源:https://blog.csdn.net/qinshi501/article/details/135049247
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!