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

农民  金牌会员 | 2023-2-24 15:14:06 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 536|帖子 536|积分 1608

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

一、报错结果
  1. QSqlDatabase: QMYSQL driver not loaded
  2. QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
复制代码
二、报错原因


  • 缺少MySQL驱动(qsqlmysql.dll,qsqlmysql.dll)
  • 有时候有驱动但缺少库(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
  1. QT       +=  sql
复制代码
4.3、打开 main.cpp ,按着我的填就可以了
[code]#include "widget.h"#include #include #include #include #include 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()

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农民

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表