我的程序是用QT5.2编写的,并使用mysql。我听说QT5.2已经包含了MYSQL驱动程序。但是,当我编译并运行我的程序时,它已成功编译但运行失败并出现错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
我的程序是这样的:
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("tradingsystem");
db.setUserName("root");
db.setPassword("");
if(!db.open())
{
//.....;
}
在.pro中我添加了这个:
QT += sql
Mysql由XAMPP提供。我的操作系统是win7-x64-sp1-ultimate,XAMPP版本1.8.2.System Path如下:
C:\Program Files (x86)\SepanderSoft;
C:\Program Files (x86)\Intel\iCLS Client\;
C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;
C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;
C:\Program Files\Intel\WiFi\bin\;
C:\Program Files\Common Files\Intel\WirelessCommon\;
C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86;
C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;
C:\Program Files\Microsoft\Web Platform Installer\;
C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;
C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;
D:\Software\MySQL\MySQL Enterprise Backup 3.8.2\
XAMPP的位置是:
D:\XAMPP
QT位置是:
D:\Software\Qt
我在D:\ Software \ MySQL中安装了mysql server-5.6-64bit,当它与XAMPP中的mysql冲突时,我卸载了mysql server-5.6-64bit。
答案 0 :(得分:8)
我遇到了同样的错误并通过复制文件
成功修复了它 C:\Program Files (x86)\MySQL\MySQL Connector.C 6.1\lib\libmysql.dll
进入
C:\Qt\Qt5.3.1\5.3\mingw482_32\bin
答案 1 :(得分:5)
我遇到了同样的问题,甚至“HồSĩSơn”的解决方案也没有用。然后我发现我已经安装了64位版本的MySQL并且正在尝试使用32位版本的Qt。
从以下位置复制dll不起作用:
C:\Program Files\MySQL\MySQL Connector.C 6.1\lib\libmysql.dll
而是从以下位置下载32位版本的libmysql.dll:
https://dev.mysql.com/downloads/connector/c/
并将其复制到你的mingw文件夹。
就我而言,我必须将DLL复制到msvc2010文件夹,因为我使用的是Visual Studio编译器:
C:\Qt\5.4\msvc2010_opengl\bin
希望这会有所帮助。 :)
答案 2 :(得分:3)
因声誉不足而加帖。
我能够使用HồSĩSơn,Ram和Sumanth的帖子(谢谢你们两个)来解决我的问题。
以下是我的确切步骤:
访问帮助,检查我正在运行的Qt Creator版本 - >关于Qt Creator。 我发现我正在运行32位版本。
现在我知道我正在运行的版本,我导航到32位版本的MySQL连接器。 这可以在C:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.1 \ lib。
中找到我复制了该文件夹中的libmysql.dll文件,并将其粘贴到C:\ Qt \ 5.9.2 \ mingw53_32 \ bin \中,因为我正在使用MinGW进行编译。 请注意,这是32位文件夹。
重新启动Qt Creator并重建我的项目。
挑战我的步骤是匹配Qt Creator的x位版本,我的编译器和驱动程序,然后重新启动Qt Creator。
希望这有助于那里的人!
答案 3 :(得分:1)
我面临同样的问题,并通过以下步骤解决。
通过做6个小时的研究,最终问题得到了解决。 我使用的是64位Windows 10,32位Qta和64位MySQL服务器。
QSQLITE和QODBC运行良好,但面临QMYSQL问题。
后来我下载了" mysql-connector-c-6.1.11-win32.zip " (如果它是32位QT)来自https://dev.mysql.com/downloads/connector/c/复制" libmysql.dll "到QT路径C:\ Qt \ 5.9.3 \ mingw53_32 \ bin。
哇..它运作得很好。答案 4 :(得分:1)
我也花了大约2天的时间解决此问题,这是我的解决方法:
我的设置: 64位Windows 10 QT 5.11.1和QT Creator 4.7.1 32位 正在构建一个64位应用程序...
下载此zip文件: mysql-connector-c-6.1.11-winx64.zip 从此网站: https://downloads.mysql.com/archives/c-c/
复制此文件: C:.. \ mysql-connector-c-6.1.11-winx64.zip \ mysql-connector-c-6.1.11-winx64 \ lib \ libmysql.dll
进入此目录: C:\ Qt \ 5.11.1 \ msvc2015_64 \ bin
注意:将'msvc2015_64'更改为您正在使用的任何编译器,尽管它必须是64位。
在部署应用程序时,将libmysql.dll复制到与.exe文件相同的目录中 我希望这可以帮助您花些时间和沮丧!
答案 5 :(得分:0)
我在没有安装开发人员工具的测试环境中遇到了这个问题。 libmysql.dll已正确部署在应用程序旁边,但错误相同。
经过数小时的搜索并尝试了可能的解决方案后,我发现了一篇帖子,其中有人提到他在DLL上使用了Dependency Walker。我遵循了这个建议,结果发现它缺少MSVCR120.dll,该文件随Visual Studio 2013的VCRedist 12.0一起提供。安装VCRedist 12.0为我解决了这个问题。
不幸的是,由于我从我们公司的第三方库中获取了libmysql.dll,所以我无法确定libmysql.dll来自哪个软件包。因此,对于VCRedist版本的要求在DLL的不同版本中可能会有所不同。