QT mingw73_64编译器连接MySql 64位出现数据库打开失败解决方法

一、原因:

相应的文件里没有mysql驱动

可以用 qDebug() << "支持的数据库"<<QSqlDatabase::drivers()<<"end";//打印qt支持的数据库类型,提示里面没有QMYSQL,只有QSQLITE、QODBC等

二、解决方法:

1、配置QT5.12.2里面的mysql.pro文件并生成最新驱动

首先打开你的安装目录,我安装在D盘

所以文件在:D:\Qt\5.12.2\Src\qtbase\src\plugins\sqldrivers\mysql
在这里插入图片描述进去后先开始编译一次。
在这里插入图片描述
会提示有一个错误,不用管它,
进mysql.pro文件里面进行配置。
配置内容:

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/mysql-5.7.23-winx64/lib/ -llibmysql
INCLUDEPATH += D:/MYSQL/mysql-5.7.23-winx64/include
DEPENDPATH += D:/MYSQL/mysql-5.7.23-winx64/include

include(../qsqldriverbase.pri)

在这里插入图片描述
配置完之后
在这里配置一下编译器,选择64位的。
在这里插入图片描述配置完编译器之后开始根据红色剪头进行一下操作:
在这里插入图片描述
1—>2;构建一下项目
1—>3;然后qmake一下。
这样就有编译的驱动出来了。

2、拷贝驱动和动态库到指定目录

拷贝最新驱动到指定的目录:

去到编译出来的驱动目录路劲复制qsqlmysql.dll,qsqlmysqld.dll到指定的路劲中。(我的目录是在D盘中,如果按照我的流程来也是在D盘的)
在这里插入图片描述
复制到:
在这里插入图片描述

 

 

3、编写连接数据库代码

加入相关头文件

xxx.pro文件中:
在这里插入图片描述
widget.h中
在这里插入图片描述
然后在widget.cpp中:

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    qDebug()<<db.drivers();
    db.setHostName("localhost");//数据库地址
    db.setDatabaseName("mysql");//现有的数据库名称
    db.setPort(3306);//数据库端口
    db.setUserName("root");//用户名
    db.setPassword("123456");//密码
    if (!db.isValid())
    {
        QMessageBox::critical(0, QObject::tr("Database"),db.lastError().text());
    }

    if(!db.open())
    {
       qDebug()<<"不能连接"<<"connect to mysql error";
       qDebug()<<db.lastError().text();
       return ;
    }
    else
    {
        qDebug()<<"连接成功"<<"connect to mysql OK";
    }

代码分析:
db.setDatabaseName(“mysql”);//现有的数据库名称,该开始这一块输入有错,一直连接失败请注意。如下图所示,通过Navicat可以查看存在的数据库,也可以新建后再连接。
db.setPort(3306);//数据库端口
db.setUserName(“root”);//用户名
db.setPassword(“123456”);//密码
这几句的意思就是连接你在安装MySql时所建立的数据库,就是已有的数据库和用户。而不是数据库在这里创建,用户也不是在这里创建,这个是要注意的。

测试结果:
在这里插入图片描述
圆满成功,撒花完结!!!

参考链接:https://blog.csdn.net/weixin_45047844/article/details/105682170?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159962332519195162164694%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=159962332519195162164694&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~pc_rank_v3-2-105682170.pc_ecpm_v3_pc_rank_v3&utm_term=mingw73_64&spm=1018.2118.3001.4187

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yiye_pianzhou

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

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

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

打赏作者

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

抵扣说明:

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

余额充值