导读
目前qt5.15.2版本不提供编译好的mysql驱动,所以你无法在qt程序中使用mysql,要想使用必须手动编译mysql驱动,下面说说编译步骤。
编译步骤
- 下载mysql(
已安装的请忽略
)
编译驱动需要用到mysql,下载链接:mysql下载,如下图:
下载完之后,进行mysql 的安装程序,建议选择自定义安装,基本就是一直next即可。
安装完之后如图,注意自定义安装这俩个建议选上!
可以运行一下WorkBench登录测试一下,出现如下说明安装成功了。
- 开始编译mysql驱动
- 编译之前,你安装的qt必须包含
源码目录(Src目录)
,编译驱动是基于这个目录进行的。没有安装的去qt官网下载(Source)或者通过qt在线安装工具,对你的qt添加Source组件 - 准备工作做好之后,打开qt安装目录,进入
D:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers (根据你自己的qt安装目录进行调整)
,在这个目录输入cmd
打开命令行窗口。 - 输入命令:
set path=D:\Qt\5.15.2\mingw81_64\bin;D:\Qt\Tools\mingw810_64\bin;%path%//设置qmake的环境变量。
- 输入命令:
qmake -- MYSQL_INCDIR="D:/MySQL/include" MYSQL_LIBDIR="D:/MySQL/lib"
//开始编译。
(注意:上述路径都得换成自己的)
出现如下输出说明编译是成功的,也即MYSQL驱动那一行变成了yes
- 最后输入命令:
mingw32-make sub-mysql
和mingw32-make install
进行编译和安装。
上述都做完之后,可以去如下目录查看生成的mysql驱动插件,出现如下两个文件说明编译成功了!
mysql驱动测试
- 经过第二个步骤编译之后,将上面最后生成的两个文件拷贝到自己Qt编译器的sqldrivers目录,如下所示:
- 将mysql的lib目录下的libmysql.dll复制到自己qt编译器的bin目录下,如下图所示:
3.打开qtCreator,新建console工程,在.pro文件中增加sql(QT += sql)
在main.cpp文件中
#include <QCoreApplication>
#include <QDebug>
#include <QSqlDatabase>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << QSqlDatabase::drivers();
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setPort(3306);
db.setDatabaseName("sys");
db.setUserName("你的mysql账户");
db.setPassword("账户密码");
bool ok = db.open();
qDebug() << ok;
- List item
return a.exec();
}
运行如下:说明可以使用MySQL了,注意编译器需要使用上述编译过程中使用到的编译器。我这里是使用的minGw64
4. 一些可能的错误
有些人可能运行出现如下情况:
可能的原因是你的mysql的libmysql.dll没有复制到自己qt编译器的bin目录下。
复制了还是不行?:libmysql.dll本身是存在依赖的,可能你需要编译openssl库,再将这些库都添加到qt编译器的bin目录下才行。当你这一步也做了,应该不会出现问题了。有需要这个库的,下面评论私信~