qt 5.8 sql 连接错误:Windows 10 上未加载 QMYSQL 驱动程序

Posted

技术标签:

【中文标题】qt 5.8 sql 连接错误:Windows 10 上未加载 QMYSQL 驱动程序【英文标题】:qt 5.8 sql connection error:QMYSQL driver not loaded on windows 10 【发布时间】:2017-03-08 22:49:31 【问题描述】:

当我尝试连接mysql时,出现错误:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
"Driver not loaded Driver not loaded"

所以我用谷歌搜索了它,我试过了:

1.复制sqldrivers文件夹到C:\Qt\Qt5.8.0\5.8\mingw53_32\plugins

2.将libmysql.dll复制到C:\Qt\Qt5.8.0\5.8\mingw53_32\bin

但错误仍然存​​在。

我有什么遗漏吗?

【问题讨论】:

"将 sqldrivers 文件夹复制到 C:\Qt\Qt5.8.0\5.8\mingw53_32\plugins" 从哪里? sqldrivers文件夹应该已经在<Qt_install_path>/plugins Why QMYSQL driver not loaded in QT5.2?的可能重复 【参考方案1】:

libmysql.dll 有 64 位和 32 位版本。 重建 Qt 驱动程序不是必须的

使用Qt5.9.1的预建版本,您仍然需要使用32位版本,即使安装了64位版本的MySQL也可以使用。无需重建 QT 插件或组件。 Download 32 bit MySQL connector here

这里已经回答了:medasumanth answer

【讨论】:

只是为了明确一点,如果您使用的是x64版本的Qt,则需要使用x64连接器文件。如果您使用的是 x86 版本的 Qt,则需要使用 x86 连接器文件。连接器可以在这里下载:dev.mysql.com/downloads/connector/c。这样做对我有用(两个版本的 Qt)。 无异议。我没有看到带有 Qt 安装程序的 MinGw_64,但总是看到 MinGW32。我没有使用 MSVC32/64。 msvc64 是否特别需要 64 位 MySQL 连接器?【参考方案2】:

这个错误通常意味着 Qt MySQL 插件很好(因为它在可用驱动程序中列出),但是您缺少 MySQL dll(从而阻止驱动程序加载)。

修复它的方法是将libmysql.dll 放置在您的 PATH 中的某个位置,例如将 MySQL 安装文件夹添加到 PATH,或将 libmysql.dll 复制到您的 exe 所在的同一文件夹中。

【讨论】:

【参考方案3】:

如果有人像我一样愚蠢,那是给你的: 基本上你应该做的是

    去https://downloads.mysql.com/archives/c-c/专门下载C !!!!!! mysql连接器; 将“libmysql.dll”和“libmysql.lib”(“mysql-connector-c-6.1.11-winx64.zip\mysql-connector-c-6.1.11-winx64\lib”)放入“c: \path_to_qt\qt_version\your_compiler\bin\" 对我来说它看起来像 "c:\Qt\5.12.1\mingw73_64\bin\"; 重新加载创建者,你的 mysql 驱动程序已完美加载;

所以基本上对于那些想了解这里发生了什么的人来说:

那个“qsqlmysql”插件基本上是一个使用mysql-C连接器方法的qt接口。 但不幸的是,这个连接器没有随 Qt 一起分发,所以你应该自己提供它。

如果您想分发您的软件,您应该将“libmysql.dll”复制到您的“.exe”文件所在的文件夹中。

我希望这可以帮助某人节省一些时间(对我来说是 3 小时 :))。

【讨论】:

【参考方案4】:
    您必须重建 mysql 驱动程序。

    关注guide

    注意:你需要三样东西:

    一个。 qt-opensource-xxx-mingw492-xxx.exe 用于 Qt Creator 和 Qt 命令 提示。

    b.qt-everywhere-opensource-src-xxx.zip 用于 Qt 源代码,mysql.pro 文件需要。 lib和include文件夹需要c.mysql-connector-c-6.1.10-win32.zip。

【讨论】:

【参考方案5】:

现在回答已经晚了,但这可能对未来的读者有用。

QMYSQL可用但未加载时,您应该找到与qsqlmysql.dllqsqlmysqld.dll文件对应的libqsqlmysql.alibqsqlmysqld.a文件并将它们(.a文件)复制到“\mingw73_xx\lib”文件夹中. (xx 表示 64 或 32)

注意project kit 64 bit使用MySql 64 bitproject kit 32 bit使用MySql 32 bit。

详情请咨询QT : QSqlDatabase: QMYSQL driver not loaded [WINDOWS]

【讨论】:

【参考方案6】:

我遇到了同样的问题。我可以按照 Benjamin T 的建议解决它。 - Windows 10 - python 3.7 - PyQt5 - 我将 libmysql.dll 文件从 python 3.7/lib/site-packages 文件夹复制到 Python 3.7 可执行文件夹,一切都开始正常工作了!

【讨论】:

以上是关于qt 5.8 sql 连接错误:Windows 10 上未加载 QMYSQL 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

Qt 5.8 QTcpServer 无法监听局域网 ip 地址问题

在 Visual Studio 2017 社区版上编译时出现错误 Qt 5.8

在 Visual Studio 2017 社区版上编译 Qt 5.8 时出现错误 C3615

如何在VS2015中使用PostgreSQL插件静态编译Qt 5.8

VS2015社区版Qt 5.8项目构建失败

学习的一点遭遇