QMYSQL驱动程序加载错误

时间:2015-08-05 00:01:12

标签: c++ mysql qt dll

我今天尝试让Qt运行Qt并且在加载QMYSQL驱动程序时遇到错误。我正在运行Windows 8.1作为操作系统。 这是我的申请代码:

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "my_db_name");
    db.setHostName("localhost");
    db.setDatabaseName("mydb");
    db.setUserName("root");
    db.setPassword("testpwd1234");
    if (db.open()) {
        qDebug() << "Opened!";
    } else {
        qDebug() << "Error = " << db.lastError();
    }

    return a.exec();
}

运行它时出现以下错误:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL3

我找到了上述错误的多种解决方案,但这些都不适用于我。以下是我验证/尝试的内容列表:

  1. \ Qt \ 5.4 \ mingw491_32 \ plugins \ sqldrivers应该包含 qsqlmysql.dll&amp; qsqlmysqld.dll
  2. libmysql.dll&amp;的路径应将libmysqld.dll添加到Path 变量OR包含在C:\ windows \ System32
  3. libmysql.dll&amp;应该添加libmysqld.dll \ Qt的\ 5.4 \ mingw491_32 \ BIN
  4. 将\ Qt \ 5.4 \ mingw491_32 \ plugins \ sqldrivers添加到可执行文件 Qt项目目录。
  5. 添加libmysql.dll&amp; libmysqld.dll到Qt的可执行目录 项目
  6. 我找到了3,4。&amp; 5.有点奇怪,因为我希望正确安装所有内容并设置Path变量不应该要求复制这些文件。无论如何,上述建议都不适合我。

    我有点沮丧,并希望得到任何帮助。

    谢谢!

2 个答案:

答案 0 :(得分:5)

感谢您的投入。结果证明这是一个非常愚蠢的错误。我试图用我的32位Qt版本包含64位二进制文​​件。如果有人遇到麻烦让MySQL与Qt一起工作,这就是它对我有用的方法:

- 从http://www.qt.io/download/下载/安装Qt。 C:\ Qt \ 5.5 \ mingw492_32 \ plugins \ sqldrivers应该包含qsqlmysql.dll,这是获取qt与MySQL交互的Qt驱动程序

- 从http://dev.mysql.com/downloads/mysql/下载/安装MySQL。 Windows安装程序对我来说很好用

- 从https://dev.mysql.com/downloads/connector/c/安装MySQL Connector C 6.1。 这并没有Windows安装程序,但将包含必要的二进制文件

-cile libmysql.dll和libmysql.lib从C:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.1 \ lib进入.exe目录,用于任何必须使用它的项目

- 在Qt中享受查询编程会话!

答案 1 :(得分:0)

它应该是一个不匹配的版本。我在Linux中有类似的问题。您可以检查libqsqlmysql的依赖关系并找到完全预期的mysql版本。正确匹配的版本应该可以解决这个问题。