添加补充的的:
注意:qsqlmysqld.dll 与 qsqlmysql.dll都要放入sqldrivers文件夹,一个是编译debug模式时用的,一个是release模式用的
如果打包还要把MySQL安装目录下的bin目录中的libmysql.dll手动复制到打包目录下
首先,在网上有些说法是直接把MySQL里的动态链接库libmysql.dll放到QT安装目录下的,是无法解决QMYSQL driver not loaded错误错的,不知道这些人有没有测试。通过查看QT安装目录插件文件夹中关于数据库的动态链接库,没有mysql的。路径为:
***\Qt\Qt5.12.12\5.12.12\mingw73_64\plugins\sqldrivers
MySQL5.7的64位库已经打好了,可以直接下载:https://download.csdn.net/download/ren365880/86247243
首先打开QT安装目录下的源码包,找到mysql的文件夹:我的路径为下:
D:\Qt\Qt5.12.12\5.12.12\Src\qtbase\src\plugins\sqldrivers\mysql
修改里面的2个文件,请用QT打开,因为修改后还需要用QT编译。
打开mysql.pro文件
注释掉QMAKE_USE += mysql
结尾添加几行代码:
# 添加你自己的mysql安装目录下的include文件夹
INCLUDEPATH += "C:\tool\MySQL\include"
# 添加你的mysql安装目录下的lib文件夹下的libmysql.lib文件
LIBS += "C:\tool\MySQL\lib\libmysql.lib"
# 设置编译好的qmysql.dll放置的目录,不然你可能不知道会生成在哪。
DESTDIR = ../mysql/mysqlDll
打开qsqldriverbase.pri文件
注释掉include($$shadowed($$PWD)/qtsqldrivers-config.pri)
当前路径的上层路径sqldrivers\中并没有这个qtsqldrivers-config.pri文件,只有configure.pri文件。
改为:
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./configure.pri)
修改完成这里后点击QT的锤子图标进行编译,编译过程中如果失败看一下路径是不是有中文,空格之类的。
成功后如下图:
把qsqlmysqld.dll复制到QT安装目录下的
**\Qt\Qt5.12.12\5.12.12\mingw73_64\plugins\sqldrivers
这是再去链接MySQL就成功了。
首先项目的.Pro文件中加入
QT += sql
mainwindow.h文件中引入库
#include
然后再.cpp中就可以使用了
第二个参数为连接的名称,这里设置的不同,就可以有不同的链接对象,能连接多个数据库
QSqlDatabase from = QSqlDatabase::addDatabase("QMYSQL","from");
from.setHostName(ip);127.0.0.1
from.setPort(port);3306
from.setDatabaseName(ui->fromDatabase->text());数据库名
from.setUserName(name);账号
from.setPassword(passowrd);密码
fromStatus = from.open();是否打开