QT MySQL 连接出错报 QSqlDatabase: QMYSQL driver not loaded

QT连接MySQL失败(本人QT版本:5.12.5)

一、报错结果

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

二、报错原因

  1. 缺少MySQL驱动(qsqlmysql.dll,qsqlmysql.dll)

  1. 有时候有驱动但缺少库(libmysql.lib)

三、解决方法

这里本人只提供一种相对简单的解决方法,不需要将 qsqlmysql.dll,qsqlmysql.dll,libmysql.lib这三个文件找过来找过去,复制来复制去的,有的还找不到,不方便。

步骤一:下载ODBC(作用类似于中间件,作为连接 qt 与 Mysql 之间的桥梁)

官网https://dev.mysql.com/downloads/connector/odbc/

步骤二:安装ODBC

双击运行,点击next --> I Agree --> next --> ...就是正常安装,默认就行

步骤三:运行ODBC

3.1、如果各位MYSQL数据库里面已经有建好的数据库的话,那就更简单了,下面是本人MYSQL数据库里面的内容;下图图中里面的红字标注,可以先不管

3.2、点击 “开始” --> 搜索 “ODBC” --> 即可找到刚刚安装的ODBC程序 --> 点击运行 (如果想要新建数据库的话,那直接从3.2开始)

3.3、运行 ODBC 数据源

3.4、点击完成后,出现下面界面,大家跟着填好就行,非常简单

3.5、至此那就OK了,接下来在QT中测试连接MYSQL数据库

步骤四:QT中测试连接MYSQL数据库

4.1、正常创建一个QT工程

4.2、先打开 xx.pro

QT += sql

4.3、打开 main.cpp ,按着我的填就可以了

#include "widget.h"

#include <QApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
#include <QSqlError>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    // Widget w;

    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setHostName("127.0.0.1");   // db.setHostName("localhost"); // 也可以
    db.setDatabaseName("你的");  // 对应 Data Source Name 里面的内容
    db.setUserName("你的用户名");
    db.setPassword("你的密码");
    db.setPort(3306);   // 如果没有修改过端口号的话,那就可写可不写

    bool ok = db.open();
    if (ok){
        qDebug() << "数据库打开成功!";
    }
    else {
        qDebug() << "数据库打开失败";
        qDebug() << "error open database because" << db.lastError().text();
    }

    // w.show();
    return a.exec();
}

4.4、ctrl + R 运行程序

是不是很简单,记得点个赞吧,谢谢啦!!!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
这个错误通常是因为没有正确安装或加载MySQL驱动程序所导致的。要解决这个问题,可以尝试以下几个步骤: 1. 确保已经正确安装了MySQL数据库和相应的驱动程序。你可以在Qt的文档中查找"Qt SQL Drivers"来获取安装MySQL驱动程序的详细说明。 2. 确保已经将MySQL驱动程序添加到Qt的插件目录中。在Qt的插件目录中,应该有一个名为"sqldrivers"的目录,其中应该包含一个名为"qsqlmysql.dll"或"libqsqlmysql.so"的文件。如果这个文件不存在,你可以尝试重新安装Qt或手动将MySQL驱动程序添加到插件目录中。 3. 如果你正在使用动态链接库版本的MySQL驱动程序,则需要确保在运行时可以找到MySQL动态链接库。你可以将MySQL动态链接库所在的目录添加到系统的PATH环境变量中,或者将MySQL动态链接库复制到Qt应用程序所在的目录中。 4. 最后,你需要确保在创建QSqlDatabase对象之前,已经正确加载了MySQL驱动程序。你可以在main函数中添加以下代码来加载MySQL驱动程序: ``` #include <QCoreApplication> #include <QtSql/QSqlDatabase> #include <QtSql/QSqlError> int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); // Load MySQL driver QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); if (!db.isValid()) { qWarning() << "Invalid database driver!"; return 1; } // Set database connection parameters db.setHostName("localhost"); db.setDatabaseName("mydatabase"); db.setUserName("myusername"); db.setPassword("mypassword"); // Open database if (!db.open()) { qWarning() << "Failed to connect to database:" << db.lastError().text(); return 1; } // Your code here... return app.exec(); } ``` 这将确保在创建QSqlDatabase对象之前,已经正确加载了MySQL驱动程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Erudite_x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值