繁体   English   中英

QMYSQL驱动程序加载错误

[英]QMYSQL driver loading error

我今天尝试使MySQL与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和qsqlmysqld.dll
  2. libmysql.dll和libmysqld.dll的路径应添加到Path变量中,或包含在C:\\ windows \\ System32中
  3. libmysql.dll和libmysqld.dll应该添加到\\ Qt \\ 5.4 \\ mingw491_32 \\ bin
  4. 将\\ Qt \\ 5.4 \\ mingw491_32 \\ plugins \\ sqldrivers添加到Qt项目的可执行目录中。
  5. 将libmysql.dll和libmysqld.dll添加到Qt项目的可执行目录。

我发现3.,4和5.有点奇怪,因为我希望正确安装所有内容,并且设置Path变量不需要复制这些文件。 无论如何,以上建议对我都不起作用。

我有点沮丧,不胜感激。

谢谢!

感谢您的输入。 原来这是一个非常愚蠢的错误。 我试图在我的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安装程序未附带此文件,但将包含必要的二进制文件

将C:\\ Program Files(x86)\\ MySQL \\ MySQL Connector C 6.1 \\ lib中的libmysql.dll和libmysql.lib复制到必须使用它的任何项目的.exe目录中

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

它应该是不匹配的版本。 我在Linux中也遇到过类似的问题。您可以检查libqsqlmysql的依赖关系,并找到确切预期的mysql版本。 正确匹配的版本应该可以解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM