Python编程实例-PyQt5 GUI编程-PyQt5的MySQL数据库驱动插件安装及使用

PyQt5的MySQL数据库驱动插件安装及使用

Qt5默认不安装MySQL数据库驱动,这给支持不同版本的MySQL数据库支持提供了灵活的支持,同时也提升了MySQL数据库使用的难度。本文将详细介绍如何安装MySQL数据库驱动插件及使用。

1、软件准备

在安装MySQL插件之前,需要准备如下软件:

  • MySQL数据库,本次实例使用的版本为8.0.28,该版本自带MySQL Connector C,因此不需要额外安装MySQL Connector C。

  • Visual Studio 2019 社区版本,Visual Studio 2019 需要安装 VC++功能模块

  • Qt框架:本次实例使用的Qt框架版本为5.15.2,并安装Qt框架源代码

  • Python开发环境:anaconda,Anaconda的Python版本为3.9.7

  • 安装PyQt5及其相关组件:

    pip install PyQt5==5.15.2 pyqtwebengine==5.15.2 pyqtdatavisualization==5.15.2 pyqtchart==5.15.2 pyqt3d==5.15.2 pyqt5-plugins==5.15.2.2.2 qscintilla==2.12.0
    

2、编译MySQL数据库驱动插件

第一步:打开Visual Studio 2019的命令行:X64 Native Tools Command Prompt for VS 2019

第二步:在命令中将目录定位到Qt安装目录下的sql驱动插件目录:

cd %QTDIR%\Src\qtbase\src\plugins\sqldrivers

本文的位置为:

C:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers

第三步:配置MySQL数据库驱动插件编译选项:

安装MySQL Connector C版本

qmake -- MYSQL_INCDIR="C:/Program Files/MySQL/MySQL Connector C 6.1/include" MYSQL_LIBDIR="C:/Program Files/MySQL/MySQL Connector C 6.1/lib"

本次使用的命令行如下:

qmake -- MYSQL_INCDIR="C:\Program Files\MySQL\MySQL Server 8.0\include" MYSQL_LIBDIR="C:\Program Files\MySQL\MySQL Server 8.0\lib"

注意,qmake命令必须添加当前命令行环境

第四步:编译并安装MySQL数据库驱动插件

nmake sub-mysql
nmake install

编译并安装完成后,MySQL数据库插件自动安装到,Qt框架安装位置。这里的位置为:

C:\Qt\5.15.2\msvc2019_64\plugins\sqldrivers

在这里插入图片描述

最后将红色方框中的4个文件复制到PyQt5的数据库插件文件夹中,在这里的位置为:

C:\Anaconda3\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers

请根据自己的Anaconda安装查找。

第五步,将MySQL驱动支持DLL复制到Anaconda安装目录的根目录下:

在这里插入图片描述

注意,如果不复制这些文件到Anaconda的根目录或其他系统环境中,否则在后面的数据库连接将不会成功。

3、连接MySQL

完成前面的步骤,就可以正常使用MySQL数据库驱动插件了。

第一步,导入依赖库:

import sys
from PyQt5.QtSql import QSqlDatabase

第二步,查询当前数据库驱动插件

drivers = QSqlDatabase.drivers()
print(drivers)

在这里输出的结果如下:

[‘QSQLITE’, ‘QMARIADB’, ‘QMYSQL’, ‘QMYSQL3’, ‘QODBC’, ‘QODBC3’, ‘QPSQL’, ‘QPSQL7’]

从输出结果可以知道,QMYSQL表示MySQL数据库驱动已经安装成功

第三步,连接数据库

# 加载MySQL数据库驱动
db = QSqlDatabase.addDatabase("QMYSQL")
# 设置数据库IP地址
db.setHostName('localhost')
# 设置数据库端口
db.setPort(3306)

# 请根据自己的数据库名称修改
db.setDatabaseName('数据库名称')
db.setUserName('MySQL数据库用户名')
db.setPassword('MySQL数据库用户登录密码')

# 连接并打开数据库
db.open()

if db.isOpen():
    print("connected to mysql database")
else:
    print("mysql connect failed:",db.lastError().text())
    sys.exit()
    
# 关闭数据库
db.close()

在这里的输出如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉&物联智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值