Qt 配置MySQL数据库

超详细的Qt 配置MySQL数据库

( 一 )先查看你的mysql是否和qt的版本匹配
  • 从Qt 5.12开始,Qt提供了对MySQL 8.0及更高版本的支持。如果您使用的是较早版本的Qt,则可能需要手动编译MySQL驱动程序或使用第三方MySQL驱动程序。

    1 如何查看MYSQL位数

    打开MySQL控制台
    输入**show variables like ‘%version_%’ ;**即可
    查看数据库位数

( 二 ) 编译MYSQL驱动

1. 双击mysql.pro文件QtCreator运行
mysql.pro

2. 选择编译器后点击Configure Project

编译器选择

3. 编译报错,未定义的mysql
编译报错

4. 解决方案, 指定mysql链接库

  • 这里分几种情况,第一如果你的mysql安装的路径没有包含空格
    情况一

  • **第二 你安装的mysql路径包含空格 **

    $$quote(路径) , 将路径包裹起来,不出意外编译成功

  • 第三 ,如果方式二失败了,别急,还有杀手锏,
    情况三

  • 编译运行,运行成功,会在你的Qt同目录下(plugins)生成驱动文件qsqlmysql.dll及qsqlmysqld.dll,当然这里是可以指定驱动文件生成的目录(一般没必要写),如果编译成功,但是没有在我们的qt同目录中没有生成我们想要的文件(有些朋友的电脑会怎样),不着急,他可能在下面的目录
    极端情况
    正常情况

  • 将qsqlmysql.dll及qsqlmysqld.dll,拷贝到mingw73_64(位),的plugins/sqdrivers中
    文件拷贝

  • 最后一步加载驱动,将mysql解压目录lib目录下的libmysql.dll拷贝至mingw73_64bin目录下:

加载驱动
**5 代码测试 **

#include "mainwindow.h"        // *****注意****

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

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;            //*****替换一下*****
    w.show();

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
        db.setHostName("127.0.0.1");  //连接本地主机
        db.setPort(3306);             //端口号,默认的
        db.setDatabaseName("game");     //数据库名
        db.setUserName("root");         //用户
        db.setPassword("ln123456789");  //密码
        bool ok = db.open();
        if (ok){
            QMessageBox::information(0, "infor", "link success");
        }
        else {
            QMessageBox::information(0, "infor", "link failed");
           // qDebug()<<"error open database because"<<db.lastError().text();
        }

        QSqlError error;
        error = db.lastError();
        if(error.isValid())
        {
            switch(error.type())
            {
            case QSqlError::NoError:
                qDebug() << "无错误";
                break;
            case QSqlError::ConnectionError:
                qDebug() << error.text();
                break;
            case QSqlError::StatementError:
                qDebug() << error.text();
                break;
            case QSqlError::TransactionError:
                qDebug() << error.text();
                break;
            default:
                qDebug() << error.text();
                break;
            }
        }
        return a.exec();
}

  • 搞忘一点,在 .pro文件中添加 QT+=sql
    补充
  • 休息一下,喝杯咖啡

成功

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

零二年的冬

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

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

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

打赏作者

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

抵扣说明:

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

余额充值