1.先编译qt中的mysql源码生成库文件
安装MySQL,SQLyog辅助可视化工具。MySQL的bin添加到系统环境变量中。
开始之前,先将编译器的路径添加到系统环境变量。
我的QT所以sql驱动是在下面这个目录中(大家在自己Qt的安装目录找到对应的文件夹就行,下面的路径也是如此),
E:\qt\5.13.2\mingw73_64\plugins\sqldrivers
MySQL的驱动文件是qsqlmysql.dll和qsqlmysqld.dll,带d的是debug版本,和下面的图片一样;
打开文件夹下面的 mysql.pro,注释掉QMAKE_USE += mysql,如下
//QMAKE_USE += mysql
另外编译mysql驱动还需要mysql的头文件和库,因此在文件末尾加上以下代码,同样是找到自己的路径
INCLUDEPATH += "E:/Program Files/MySQL/include"
LIBS += "E:/Program Files/MySQL/lib/libmysql.lib"
接下来就可以开始编译了。
可以使用QT自带的命令行程序或者git bash,不要用cmd,它不能使用qmake,要用其他代替。
首先要进入以下文件夹:
E:\qt\5.13.2\Src\qtbase\src\plugins\sqldrivers\mysql
在当前目录下,输入
qmake
如果报了下面的错:
No such file or directory
是因为没有qtsqldrivers-config.pri文件,那么可以返回上一级,执行qmake,如下:
cd ../
qmake
再返回到mysql目录中,qtsqldrivers-config.pri出现了。
然后继续
qmake
mingw32-make
mingw32-make release-install
mingw32-make debug-install
这四个命令完成后,驱动已经安装好了。
最后,把E:\Program Files\MySQL\lib 中的 libmysql.lib和libmysql.dll文件复制到 E:\qt\5.13.2\mingw73_64\bin 即可。
2.测试 安装是否成功
在pro文件中加入 QT+= sql
#include "widget.h"
#include "ui_widget.h"
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QtDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
qDebug() << QSqlDatabase::drivers();
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("mysql");
db.setUserName("root");
db.setPassword("你的密码");
bool ok = db.open();
if (ok)
{
qDebug() << "ok";
}
else
{
qDebug() << "no";
}
}
Widget::~Widget()
{
delete ui;
}
打印ok则链接成功 。