为什么在QT5.2中没有加载QMYSQL驱动程序?

hua*_*986 8 mysql qt

我的程序用QT5.2编写并使用mysql.我听说QT5.2已经包含了MYSQL驱动程序.但是,当我编译并运行我的程序时,它已成功编译但运行失败并出现错误:

   QSqlDatabase: QMYSQL driver not loaded
   QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
Run Code Online (Sandbox Code Playgroud)

我的程序是这样的:

     QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
     db.setHostName("localhost");
     db.setDatabaseName("tradingsystem");
     db.setUserName("root");
     db.setPassword("");
     if(!db.open())
     {
          //.....;
     }
Run Code Online (Sandbox Code Playgroud)

在.pro我添加:

    QT += sql
Run Code Online (Sandbox Code Playgroud)

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\
Run Code Online (Sandbox Code Playgroud)

XAMPP的位置是:

    D:\XAMPP
Run Code Online (Sandbox Code Playgroud)

QT位置是:

    D:\Software\Qt
Run Code Online (Sandbox Code Playgroud)

我在D:\ Software\MySQL中安装了mysql server-5.6-64bit,当它与XAMPP中的mysql冲突时,我卸载了mysql server-5.6-64bit.

小智 8

我遇到了同样的错误并通过复制文件成功修复了它

C:\Program Files (x86)\MySQL\MySQL Connector.C 6.1\lib\libmysql.dll

进入

C:\Qt\Qt5.3.1\5.3\mingw482_32\bin

Youtube链接

  • 明确地说,如果您使用的是 x64 版本的 Qt,则需要使用 x64 连接器文件。如果您使用的是 x86 版本的 Qt,则需要使用 x86 连接器文件。这样做对我有用(Qt的两个版本) (2认同)

med*_*nth 5

我遇到了同样的问题,甚至"HồSĩSơn"的解决方案都没有用.然后我发现我已经安装了64位版本的MySQL并且正在尝试使用32位版本的Qt.

从以下位置复制dll不起作用:

C:\Program Files\MySQL\MySQL Connector.C 6.1\lib\libmysql.dll
Run Code Online (Sandbox Code Playgroud)

而是从以下位置下载32位版本的libmysql.dll:

https://dev.mysql.com/downloads/connector/c/

并将其复制到您的mingw文件夹.

在我的情况下,我不得不将DLL复制到msvc2010文件夹,因为我使用的是Visual Studio编译器:

C:\Qt\5.4\msvc2010_opengl\bin
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.:)