QT连接数据库报错

QT连接MySql数据库报错

缺少Mysql驱动
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
MySql database open fail ---  QSqlError("", "Driver not loaded", "Driver not loaded")

原理:QT要连接Mysql,要通过QT的数据库连接插件连接到Mysql的动态库,再连接到MySql

不同版本的QT需要的插件不完全相同

1.修改mysql.pro代码

版本太高,可能会没有这个文件,我的是QT5.14.2
找到这个文件 D:\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql
在这里插入图片描述

用QT打开后,修改后点击编译
在这里插入图片描述

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#QMAKE_USE += mysql

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin


win32:LIBS += -LD:/MySQL/MySQLServer5.7/lib -llibmysql

INCLUDEPATH += D:/MySQL/MySQLServer5.7/include

DEPENDPATH += D:/MySQL/MySQLServer5.7/include


include(../qsqldriverbase.pri)

2.修改后,点击编译,没有问题直接跳到第3步即可

问题1:error: mysql.h: No such file or directory #include <mysql.h>

​ 这是因为你的文件路径有空格 这几个代码路径不能有空格,直接修改文件路径的话,你的mysql服务会出现问题,无法打开什么的

我试了很久,还是重开吧,我重新又装了一次mysql,注意QT的版本跟MySql的版本要一致,都是64位或者都是32位

win32:LIBS += -LD:/MySQL/MySQLServer5.7/lib -llibmysql

INCLUDEPATH += D:/MySQL/MySQLServer5.7/include

DEPENDPATH += D:/MySQL/MySQLServer5.7/include

问题2:Cannot read D:/qtsqldrivers-config.pri:No such file or directory

在这里插入图片描述

打开qsqldriverbase.pri文件,将第四行注释掉,即 #include($ s h a d o w e d ( shadowed( shadowed( $PWD)/qtsqldrivers-config.pri)

添加include(./configure.pri)
在这里插入图片描述

解决问题后:编译mysql.pro文件

在这里插入图片描述

3、编译成功后

  1. 可以看到 D盘(你自己QT在哪个盘就在哪里)下有个pluigins文件生成,

复制这两个文件到D:\Qt5.14.2\5.14.2\mingw73_64\plugins\sqldrivers
在这里插入图片描述
/
在这里插入图片描述

  1. 再把D:\MySQL\MySQLServer5.7\lib下面的这个文件复制到D:\Qt5.14.2\5.14.2\mingw73_64\bin

在这里插入图片描述

/
在这里插入图片描述

4、测试连接

连接数据库代码:

    //创建数据库类型
    db = QSqlDatabase::addDatabase("QMYSQL");
    db.setDatabaseName("");
    db.setHostName("127.0.0.1");
    db.setPort(3306);
    db.setUserName("");
    db.setPassword("");

    if(!db.open())
    {
        qDebug() <<"MySql database open fail --- " << db.lastError();
    }
    else
    {
        qDebug() <<"MySql database open successfully";
    }

成功

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux系统中,Qt提供了一个名为Qt SQL的块,用于连接和操作各种数据库。要在Linux系统中使用Qt连接数据库,你可以按照以下步骤进行操作: 1. 首先,确保你已经正确安装了Qt开发环境和所需的数据库驱动程序。常见的数据库驱动程序有MySQL、PostgreSQL、SQLite等。可以通过Qt的官方网站或软件包管理器获取这些驱动程序。 2. 在Qt项目中,你需要在.pro文件中添加对Qt SQL模块的引用。在.pro文件中添加如下行: ``` QT += sql ``` 3. 在代码中,你需要包含Qt SQL模块的头文件: ``` #include <QtSql> ``` 4. 创建一个数据库连接对象,并设置连接参数。例如,如果你要连接到MySQL数据库,可以使用以下代码: ``` QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); // 设置主机名 db.setDatabaseName("database_name"); // 设置数据库名称 db.setUserName("username"); // 设置用户名 db.setPassword("password"); // 设置密码 ``` 5. 打开数据库连接: ``` if (db.open()) { // 连接成功 } else { // 连接失败 } ``` 6. 一旦成功连接到数据库,你可以执行各种SQL查询和操作。例如,你可以使用QSqlQuery类执行SELECT、INSERT、UPDATE等操作。 这些是在Linux系统中使用Qt连接数据库的基本步骤。根据你要连接的数据库类型和具体需求,可能需要进一步设置和操作。你可以参考Qt的官方文档和示例代码,以获得更详细的信息和实例。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值