【问题标题】:How to connect to a MySQL server in a Qt application如何在 Qt 应用程序中连接到 MySQL 服务器
【发布时间】:2016-02-03 16:39:24
【问题描述】:

我需要在一个Qt应用程序中连接一个MySQL服务器,所以我写了如下代码:

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("xxx");
    db.setUserName("xxx");
    db.setPassword("xxx");
    db.setDatabaseName("xxx");
    db.open();

不幸的是,当我尝试直接从 Qt Creator 运行此代码时,它在 addDatabase 函数调用之后给我以下错误:

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

我尝试打印最后一个错误代码:

qDebug() << db.lastError().text();

输出

"Driver not loaded Driver not loaded"

当然,我在同一台计算机上安装了 MySQL 服务器。

为什么?我究竟做错了什么?我该如何解决?

【问题讨论】:

    标签: c++ mysql qt qt5


    【解决方案1】:

    您有一些事情需要检查。检查这些帖子,也许它们对你有帮助。

    http://www.qtcentre.org/threads/55365-QSqlDatabase-QMYSQL-driver-not-loaded-but-available

    QMYSQL driver available but not loaded

    【讨论】:

    • 我已经看过了。不幸的是,我没有 libmysqlclient.dll,只有它的静态版本(.lib 文件)。我还尝试将整个sqldrivers 目录复制到debug 文件夹,但没有帮助
    • 你有 qmyssql.dll 吗?
    • 是的,在sqldrivers目录下
    • 我认为问题在于您没有libmysql.dll。认为有时 .lib 文件只是应用程序和 .dll 之间的“桥梁”。看看这个,也许你以前没见过seppemagiels.com/blog/create-mysql-driver-qt5-windows
    • 我已经把 libmysql.dll 放到了可执行文件的附近和 sqldrivers 目录中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 2013-03-10
    相关资源
    最近更新 更多