总结QT连接MySQL数据库问题:“QSqlDatabase: QMYSQL driver not loaded,QSqlDatabase: available drivers: XXXX

目录

1.问题示例:

2.解决方法

2.1 MySQL位数和QT编译器(构件套件)的位数要相同

(1)MySQL查看,打开mysql命令行,输入密码登录,输入“status”回车,即可查看:x86_64

(2)QT编译器(构件套件)查看

2.2 Qt源码自己编译所需dll文件

 2.3 大功告成


1.问题示例:

{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");
    db.setPort(3306);
    db.setDatabaseName("test_mysql");
    db.setUserName("root");//uesr
    db.setPassword("xxxxxxx");//密码
    if (db.open())
    {
        QMessageBox::about(this,"yeah","success");
    }
}

结果报错:

百度了许久,在尝试了好几次失败,软件重装、重启电脑总结出解决该问题的一些可解决方法。

2.解决方法

2.1 MySQL位数和QT编译器(构件套件)的位数要相同

(1)MySQL查看,打开mysql命令行,输入密码登录,输入“status”回车,即可查看:x86_64

(2)QT编译器(构件套件)查看

 

 总之位数一定一低一定要和MySQL对应(重要事情说三遍)

2.2 Qt源码自己编译所需dll文件

(1)找到qt安装路径的,源码mysql.pro打开。比如我的在这里

 “ C:\Qt\Qt5.12.11\5.12.11\Src\qtbase\src\plugins\sqldrivers\mysql ”

 (2)打开后:

QMAKE_USE  += mysql 这个把它删了(或者注释了也行,万一删了以后又需要用);

添加下面方框里的东西:

 # 添加你自己的mysql安装目录下的include文件

INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 8.0\include"

# 添加你的mysql安装目录下的lib文件夹下的libmysql.lib文件

LIBS += "C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.dll"

# 设置编译好的qmysql.dll放置的目录,不然你可能不知道会生成在哪。

DESTDIR = ../mysql/lib/   

 (3)选择左边mysql,右键“执行qmake”,然后在构建

 (4)找到mysql/lib打开,

 全选复制

 (5)粘贴到对应的那个构建套件的驱动目录下(我的是mingw73_64 这个)

我的路径为:

C:\Qt\Qt5.12.11\5.12.11\mingw73_64\plugins\sqldrivers

 (5)此时回来运行测试代码(我一开始满怀期待,结果还是不行)

可见,此时报错,但多出了QMYSQL QMYSQL3,说明mysql驱动已经有了

 不用管继续

(6)去MySQL安装路径下找到libmysql.dll,直接搜索就完了,RT

 找到之后,复制到Qt对应构建套件的bin目录下

 2.3 大功告成

这样子,差不多就能解决问题了。

注意:

(1)MySQL和构件套件位数要相同(很重要)。

(2)测试代码千万别写错了,仔细一点,不然瞎忙活半天

(3)可以重启QT、重启电脑试试(虽然我也不知道有没有用,反正所有的试了不行再试试)

不要害怕失败,多尝试。

  • 11
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值