You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5连接MySQL报错:QMYSQL驱动未加载及应用实例缺失问题

解决PyQt5连接MySQL时驱动未加载的问题

嘿,我来帮你搞定这个头疼的问题!你遇到的是PyQt5连接MySQL时常见的驱动加载和初始化问题,咱们一步步拆解解决:

1. 先解决「QCoreApplication实例缺失」的问题

PyQt的数据库驱动加载依赖于QCoreApplication(或其子类如QApplication)的实例存在,你的代码里没有创建这个对象,所以首先要补上。修改后的代码如下:

from PyQt5 import QtCore, QtGui, QtWidgets, QtSql
import sys

# 必须先初始化QApplication,这是加载驱动的前提
app = QtWidgets.QApplication(sys.argv)

# 初始化数据库连接
db = QtSql.QSqlDatabase.addDatabase('QMYSQL')
db.setHostName('localhost')
db.setDatabaseName('shopping')
db.setUserName('root')
db.setPassword('prova')

# 尝试打开连接并输出结果
if db.open():
    print("✅ 数据库连接成功!")
else:
    print(f"❌ 连接失败:{db.lastError().text()}")

2. 解决「QMYSQL驱动未加载」的核心问题

这个问题通常是驱动文件缺失或兼容性问题导致的,按以下步骤排查:

步骤A:确认驱动文件存在

找到你的PyQt5安装目录,进入Lib\site-packages\PyQt5\Qt\plugins\sqldrivers文件夹,检查是否有qsqlmysql.dll文件。如果没有,说明你的PyQt5版本没有自带QMYSQL驱动,你可以:

  • 重新下载包含完整驱动的PyQt5安装包(注意必须是x64版本,和你的Python、MySQL匹配)
  • 或者跳过QtSql,直接用你已经安装的mysql-connector-python来连接数据库(这可能更省心)

步骤B:确保MySQL的动态链接库能被加载

MySQL8.0的libmysql.dll文件需要被Python进程找到,你可以:

  1. 找到MySQL安装目录下的lib\libmysql.dll文件
  2. 把它复制到Python安装目录的DLLs文件夹(比如C:\Python34\DLLs)
  3. 或者把MySQL的lib目录添加到系统环境变量PATH中,然后重启你的MS-DOS提示符

步骤C:适配MySQL8.0的认证方式

MySQL8.0默认使用caching_sha2_password认证方式,但旧版本的QMYSQL驱动不支持这个,所以需要把root用户的认证方式改成旧的mysql_native_password:
打开MySQL命令行客户端,执行以下SQL语句:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'prova';
FLUSH PRIVILEGES;

3. 关于手册提到的MySQLdb模块

手册里说的MySQLdb是另一种Python连接MySQL的库,和你用的PyQt5 QtSql模块无关,所以不用安装它。你已经安装的mysql-connector-python是官方的替代方案,如果你不想折腾QtSql驱动,也可以直接用它来连接数据库,代码示例如下:

import mysql.connector

try:
    conn = mysql.connector.connect(
        host='localhost',
        database='shopping',
        user='root',
        password='prova'
    )
    if conn.is_connected():
        print("✅ 数据库连接成功!")
except mysql.connector.Error as e:
    print(f"❌ 连接失败:{e}")
finally:
    if 'conn' in locals() and conn.is_connected():
        conn.close()

内容的提问来源于stack exchange,提问作者Max

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:10:50