首页 > 数据库 >QT MySQL 连接出错报 QSqlDatabase: QMYSQL driver not loaded

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

时间:2023-02-24 15:13:08浏览次数:58  
标签:QT ODBC -- driver db MySQL include QSqlDatabase

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)
  2. 有时候有驱动但缺少库(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 运行程序

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

标签:QT,ODBC,--,driver,db,MySQL,include,QSqlDatabase
From: https://www.cnblogs.com/xcbb/p/17150795.html

相关文章

  • MySQL
    事务数据库中事务是一组操作,要么都执行,要么都不执行。四个特性(ACID):1、A(atomicity),原子性。指每个事务都是不可分割的工作单位,要么都执行成功,要么都执行不成功2、C(cons......
  • MySQL使用函数
    ​ MySQL中提供了大量函数来简化用户对数据库的操作,比如字符串的处理、日期的运算、数值的运算等等。使用函数可以大大提高SELECT语句操作数据库的能力,同时也给数据的转......
  • MySQL使用函数
    ​ MySQL中提供了大量函数来简化用户对数据库的操作,比如字符串的处理、日期的运算、数值的运算等等。使用函数可以大大提高SELECT语句操作数据库的能力,同时也给数据的转......
  • MySQL;存储过程
    ​ 【1】什么是存储过程(StoredProcedure)通过前面章节的学习,我们已经知道SQL是一种非常便利的语言。从数据库抽取数据,或者对特定的数据集中更新时,都能通过简洁直观的......
  • MySQL;存储过程
    ​ 【1】什么是存储过程(StoredProcedure)通过前面章节的学习,我们已经知道SQL是一种非常便利的语言。从数据库抽取数据,或者对特定的数据集中更新时,都能通过简洁直观的......
  • centos8 安装mysql8.0.11—shell自动化脚本
    需求说明自动化安装mysql8.0.11并修改密码为指定字符并根据提供的sql文件创建以文件名为名称的数据库并执行sql文件下载压缩包下载地址流程总览:1.将压缩包上传到......
  • mysql数据类型以及各种语句的总结
    数据类型分类整数型,浮点型(float和double),定点数,字符串(char,varchar,text),日期时间类型,修饰符字符串(char,varchar,text)char(n)固定长度,最多255个字符,注意不是字......
  • 使用Alpine Linux做基础镜像备份mysql8.0+数据库
    说明本篇文章仅是基于k8scronjob备份mysql8.0+数据库,使用AlpineLinux作为基础镜像时遇到的问题做下简单的排坑,没有涉及到具体的部署细节,后面有时间再补上。镜像打包#......
  • 云原生|kubernetes|部署MySQL一主多从复制集群(基于GTID的复制)
    前言:一,MySQL的主从复制优点如下:数据更安全:做了数据冗余,不会因为单台服务器的宕机而丢失数据性能大大提升:一主多从,不同用户从不同数据库读取,性能提升扩展性更优:流量增大时,可......
  • Oracle数据库基本操作(和MySQL的类比操作)全局查询篇
                             Oracle数据库基本操作(和MySQL的类比操作)全局查询篇Oracle数据库和MySQL数据库同属关系型数......