sunny_yeah_ 2020-03-17 22:15 采纳率: 0%
浏览 1726

Qt中已经编译好了MySQL驱动,但是为什么运行db.open()还是无法打开数据库?

使用环境为QT5.13.1 + vs2015 + MySQL8.0.19

我已经跟着网上的教程编译好了QMySQL,并将响应的.dll文件和.lib文件拷贝到bin目录下。但是运行到db.open()时依旧无法打开数据库。

代码如下:

#include <QtCore/QCoreApplication>
#include <QtSql\qsqldatabase.h>
#include <QtSql\qsqlquery.h>
#include <QtSql\qtsqlglobal.h>
#include <QtCore\qdebug.h>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 输出可用数据库
    qDebug() << "Available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
        qDebug() << driver;
    // 打开MySQL —— 一直都打不开
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");  // 驱动
    db.setHostName("localhost");
    db.setDatabaseName("mydata");
    db.setUserName("root");
    db.setPassword("");

    if (!db.open())
        qDebug() << "Failed to connect to root mysql admin.";
    else qDebug() << "open";

    QSqlQuery query(db);
    return a.exec();
}

运行结果如下:
图片说明

前面所有代码都能运行,到db.open()就返回false了。。。
求助大佬解惑!!!灰常感谢!!!

  • 写回答

2条回答 默认 最新

  • 马孔多的黑夜 2021-01-14 16:32
    关注

    在代码“

    qDebug() << "Failed to connect to root mysql admin.";

    的前面获取 db.lastError(); 查看错误原因,很大程度上可能是连接的数据库不存在或者数据库名不对

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器