首页 > 数据库 >【PyQt5连接Mysql】python连接成功记录(版本对应)-最新

【PyQt5连接Mysql】python连接成功记录(版本对应)-最新

时间:2024-07-13 14:26:21浏览次数:16  
标签:Qt5 python db PyQt5 Version print 连接

在做一个qt登陆注册界面时,不得不使用数据库的连接,但是一直连接失败,记录一下个人成功解决的方法,希望能帮到各位。我的版本为Qt5 Version Number is: 5.15.2,PyQt5 Version is: 5.15.10,Mysql 8.0。

参考:
PyCharm+PyQt5(5.15.2)+mysql, PyQt5连接mysql,踩坑与解决办法
PyQt5连接Mysql数据库显示Driver not loaded

1.连接数据库

from PyQt5.QtSql import QSqlDatabase, QSqlQuery
 
print("支持的驱动")
for driver in QSqlDatabase.drivers():
    print(driver)
 
db = QSqlDatabase.addDatabase("QMYSQL")
db.setHostName("localhost")  # 数据库主机名
db.setUserName("自己的用户名")  # 数据库用户名
db.setPassword("自己的密码")  # 数据库密码
db.setDatabaseName("要连接的数据库名称")  # 数据库名称
db.setPort(3306)  # 数据库端口号
 
if not db.open():
    print(db.lastError().text())
else:
    print("已连接")

首先尝试连接,如果“已连接”,就可以不用往后看了,我就一直显示“driver not loaded”,然后按后面步骤继续。


原因分析:

可以参考链接①中的步骤很详细,我参考文中方法并不能解决,然后从评论区猜测问题出在版本和驱动不对应。


解决方案:

首先查看自己qt版本,然后下载对应版本的驱动,添加到对应文件中。

from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import QT_VERSION_STR
from PyQt5.Qt import PYQT_VERSION_STR
from sip import SIP_VERSION_STR

if __name__=='__main__':
    import sys
    app=QApplication(sys.argv)
    print("Qt5 Version Number is: {0}".format(QT_VERSION_STR))
    print("PyQt5 Version is: {}".format(PYQT_VERSION_STR))
    print("Sip Version is: {}".format(SIP_VERSION_STR))

    sys.exit(app.exec_())

输出

Qt5 Version Number is: 5.15.2
PyQt5 Version is: 5.15.10
Sip Version is: 6.7.12

以我的为例,然后去这个网址下载,找到自己对应的版本,比如我的版本为5.15.2,对应去找然后下载。
对应版本下载
下载过后解压文件,有两个步骤:
1.将libmysql.dll复制到自己的使用环境PyQt5\Qt5\bin(我的为D:\Anaconda3\envs\pytorch\Lib\site-packages\PyQt5\Qt5\bin)的文件夹下即可。
在这里插入图片描述
2.打开sqldrivers文件夹,将其中的两个dll文件都复制到自己的使用环境PyQt5\Qt5\plugins\sqldrivers(我的为D:\Anaconda3\envs\pytorch\Lib\site-packages\PyQt5\Qt5\plugins\sqldrivers)文件夹下即可。
在这里插入图片描述
最后再测试代码连接为“已连接”。

标签:Qt5,python,db,PyQt5,Version,print,连接
From: https://blog.csdn.net/lwh1239380807/article/details/140387014

相关文章

  • 可视化课设总结(星巴克网页爬取信息,百度地图网页版爬取信息,百度地图api,pyecharts库,pyth
    一、引言       本博客是本人是基于本人可视化课设所做的总结,其中有些过程的实现可能并不是最优的实现方法,有些实现效果也因为本人的实力有限,并不能达到预期的效果,所以也欢迎大家指点和改良。(刚考完期末回家,终于有时间把这个课设写个博客了,虽然这课设是明天截至的,我今......
  • python制作甘特图的基本知识(附Demo)
    目录前言1.matplotlib2.plotly前言甘特图是一种常见的项目管理工具,用于表示项目任务的时间进度直观地看到项目的各个任务在时间上的分布和进度常用的绘制甘特图的工具是matplotlib和plotly主要以Demo的形式展示1.matplotlib功能强大的绘图库,适合制作静态......
  • idea 出现[08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全
    目录1.问题所示2.原理分析3.解决方法1.问题所示idea配置Database的时候,出现如下问题:Failed  Copy SearchError Troubleshooting[08S01]驱动程序无法通过使用安全套接字层(SSL)加密与SQLServer建立安全连接。错误:“Theserverselectedprotoco......
  • python 基础七 解析之 BeautifulSoup
    基本简介:安装以及创建:节点定位:节点信息:星巴克爬取:frombs4importBeautifulSoupimporturllib.requesturl='https://www.starbucks.com.cn/menu/'resp=urllib.request.urlopen(url)context=resp.read().decode('utf-8')soup=BeautifulSoup(conte......
  • python数据类型
    1.Int整数:int 可以表示正数、负数、零,主要用来进行数学运算。对于整数还可以进行位运算,共有6种位运算:取反(~)、左移(<>)、异或(^)、按位或(|)、按位与(&)。 int()数据类型能够转换成整数(文字、小数类字符串不能,浮点数转换直接抹零取整)。整数的进制:二进制表示形式:0b1101 (......
  • Python序列
    Python序列在Python中,序列类型包括字符串、列表、元组、集合和字典,这些序列支持以下几种通用的操作,但比较特殊的是,集合和字典不支持索引、切片、相加和相乘操作。字符串也是一种常见的序列,它也可以直接通过索引访问字符串内的字符。序列索引序列中,每个元素都有属于自己的编......
  • Python基础知识
    Python基础知识Python注释Python单行注释Python中使用井号(#)作为单行注释的符号,语法格式为:#注释内容也就是说,从符号#处开始,直到换行处结束,此部分内容都作为注释的内容,当程序执行时,这部分内容会被忽略。单行注释放置的位置,既可以是要注释代码的前一行,例如:#这是一行简单的......
  • python热门面试题三
    面试题1:Python中的列表推导式是什么?请给出一个例子。回答:列表推导式(ListComprehension)是Python中一种非常强大且简洁的构建列表的工具。它允许你通过一个表达式来创建一个新的列表,这个表达式定义了新列表中的元素应该如何从旧列表或其他可迭代对象中派生出来。列表推导式......
  • python热门面试题五
    当然,以下是两个Python经典面试题及其详细回答:面试题1:Python中的深拷贝和浅拷贝有什么区别?请举例说明。回答:在Python中,深拷贝(deepcopy)和浅拷贝(shallowcopy)是两种不同的拷贝机制,它们用于创建对象的副本。浅拷贝:创建一个新对象,但它包含的是对原始对象中包含项的引用,而不......
  • Python装饰器
    装饰器(Decorators)是Python的一个重要部分。我们现在想要在程序中定义两个函数,分别用类打印九九乘法表和计算N以内的数字累加的和。#定义功能:打印九九乘法表defprint_nine_table():forlineinrange(1,10):forcolumninrange(1,line+1):......