如何通过Python/PyQt6连接XAMPP环境中的MariaDB数据库?
解决PyQt6连接XAMPP中MariaDB数据库的问题
你的核心问题是PyQt6默认未包含QMYSQL驱动组件,加上缺少MariaDB的连接依赖库,导致无法建立数据库连接。以下是分步解决方法:
一、确认驱动缺失情况
在你的connect_db函数开头添加一行代码,打印PyQt6可用的数据库驱动:
print(QSqlDatabase.drivers())
运行后如果输出里没有QMYSQL,说明确实缺少对应驱动。
二、安装MariaDB Connector/C
PyQt的QMYSQL驱动依赖MariaDB的Connector/C库,步骤如下:
- 下载对应系统架构的Connector/C安装包(你的Windows 10是64位,选64位版本),版本建议和XAMPP中MariaDB版本兼容(XAMPP 8.2.0配套的MariaDB是10.4.x,下载v3.3.x或更高版本即可)
- 安装时选择默认路径,记住安装目录(比如
C:\Program Files\MariaDB\MariaDB Connector C 64-bit)
三、配置PyQt6的数据库驱动文件
1. 获取qsqlmysql.dll文件
PyQt6的sqldrivers目录默认没有这个文件,你需要从对应版本的Qt预编译包中获取:
- 下载与你的PyQt6版本(6.6.1)匹配的Qt 6.6.1 Windows x64预编译包
- 解压后找到
Qt\6.6.1\msvc2019_64\plugins\sqldrivers目录,复制其中的qsqlmysql.dll和qsqlmysql.dll.debug文件
2. 复制文件到PyQt6的插件目录
找到你Python环境中PyQt6的sqldrivers路径,一般是:
你的Python安装目录\Lib\site-packages\PyQt6\Qt\plugins\sqldrivers
将刚才复制的qsqlmysql.dll等文件粘贴到这个目录,同时把MariaDB Connector/C安装目录下lib\vs143中的libmysql.dll也复制到该目录。
四、代码优化(排查具体错误)
修改你的连接失败提示代码,打印具体错误信息,方便排查:
if not db.isOpen(): print('连接失败!错误信息:', db.lastError().text()) sys.exit(1)
另外确认:
testuser用户拥有localhost访问权限,且能操作test-db数据库(可以用phpMyAdmin检查用户权限)- XAMPP的MariaDB服务处于运行状态
五、替代方案(无需配置驱动)
如果觉得配置驱动太麻烦,可以改用mysql-connector-python库直接连接数据库,再将数据适配到PyQt的界面组件中:
- 安装库:
pip install mysql-connector-python
- 示例连接代码:
import mysql.connector def connect_db(): try: conn = mysql.connector.connect( host="localhost", user="testuser", password="", database="test-db" ) print('连接成功!') conn.close() except mysql.connector.Error as err: print(f'连接失败:{err}')
内容的提问来源于stack exchange,提问作者Dirk_63
相关产品推荐
相关产品推荐

