1.QT安转,
到官网下载:http://download.qt.io/archive/qt/
进入可以看到
而且win版本只有x86
下载
14.2版本的文件有2.3G
双击后安装
到这一步选择文件夹
选择组件,注意,一定要选择的是Source,还要MinGW64,因为在和MySQL链接时,需要使用这两个,而且MinGW64是编译时常用的
之后一路顺利下一步
也可以在环环境变量中添加QT的路径,不过QT,貌似不添加路径也没影响,但是下面的MySQL一定要有路径
2.MySQL安装
点击:https://dev.mysql.com/downloads/mysql/,或者直接搜索mysql下载,
进入可以看到此时为x64的,而下面也有x86的选项,但不用选x86的,因为最新的x86的,在选择安装选项时也只有x64一个安装选项,但是如果选择MySQL Installer for Windows,新版本的只有x86的,不过安装却只有x64的选项
2.·1·
第一种安装方式,直接install,方便快捷,有两种方式第一种是直接install
点击 MySQL Community Downloads进入到安装选项
选择MySQL Installer for Windows
选择下面的,上面的在线安装真的很慢!
如果你网很快,也可以选择在线安装,只是速度仍然无法和离线的相比,然后选择大的那个安装
注意要选择安装位置的话,需要你选择custom,然后Next
按照1,2,3,4,5,才能找到隐藏的安装位置选择选项
注意下一步也很重要connect c++,需要选择,因为QT使用的是c++
很快到这一步,但是没有安装位置的选项,因为他们把安装位置隐藏的很深,需要你选择之后才能找到:
上面的是选择安装位置的方法,注意按照标号选择,尤其是第三步和第四步,你需要在第四步点击要安装的软件,才能选择安装位置,也就是第五步才会出现。
选好之后,一路next,是的一路next,因为你没有需要选择的东西,如果有不明白的也可以不用管,直到你遇到需要输入密码
额,刚发现之后的图片没有保存,为了更详细,就先把mysql卸载,重新安装一下
两分钟,安装完成
简单密码,方便记忆
输入密码,check
环境变量设置
2.2Arichives
这种不着重讲,很简单,不过没验证能不能在后面和qt编译时得出dll文件
点击Archives可以选择直接安装源码
下载后是这样的
这种安装方式需要使用安装命令
第二步:先解压,然后在mysql下创建一个my.ini文件,
更改my.ini文件里面的两行安装目录,
第二行加上\data,
my.ini文件不能多或少一个符号,
在path(环境变量里面)加上mysql路径(/bin)。
第三步:进入命令指示符(cmd),
输入mysqld --initialize-insecure --user=mysql,
再输入mysqld -install,
出现Service successfully installed.表示配置完成
启动数据库net start mysql,
输入mysql -u root -p,不用输入密码直接回车
出现mysql>表示配置完成
输入alter user user<> identified by “密码”;
输入net stop mysql关闭数据库
3.编译得出dll文件
双击既可以QT打开,按照如下方式修改如下
#QMAKE_USE += mysql
win32:LIBS += D:/BPowSoft/MySQL/lib/libmysql.lib # 添加你自己的mysql安装目录下的lib文件
INCLUDEPATH +=D:/BPowSoft/MySQL/include # 添加你自己的mysql安装目录下的include文件夹
DESTDIR = D:/BPowSoft/MySQL/include # 设置编译好的qmysql.dll放置的目录,不然你可能不知道会生成在哪。
注意如果是安装qt选择的是MinGW32则不会有qsqldriverbase.pri,也就不能编译出dll文件
编译后D盘多了三个文件夹
使用的是下面的dll文件,网上有人生成的是qsqlmysql.dll qsqlmysqld.dll,但这里只生成了 qsqlmysql.dll 和 qsqlmysql.dll.debug
拷贝到
在将mysql的lib动态链接库拷贝到D:\BPowSoft\QT\5.14.2\mingw73_64\bin
4测试
首先要进入mysql创建数据库
create database students;
在到qt里创建工程进行测试
代码在下面,这个也是在网上找的
main文件
#include <QApplication>
#include <QMessageBox>
#include <QSqlError>
#include <QTextCodec>
#include <QDebug>
#include <QSqlDatabase>
#include <QSqlQuery>
bool creatConnect();
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForLocale(codec);
if(!creatConnect())
{
return 1;
}
qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "\t "<< driver;
qDebug() << "End";
QSqlQuery query;
QString sql = "select * from test1;";
qDebug() << sql;
query.exec(sql);
while(query.next())
{
qDebug()<<query.value(0).toString()<<query.value(1).toString();
}
return a.exec();
}
bool creatConnect()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setPort(3306);
db.setDatabaseName("students");
db.setUserName("root");
db.setPassword("123586");
bool ok = db.open();//建立数据库连接
if(!ok)
{
QMessageBox::critical(0,QObject::tr("连接数据库失败!!!"),db.lastError().text());
return false;
}
else
{
QMessageBox::information(0,QObject::tr("Tips"),QObject::tr("连接数据库成功!!!"));
return true;
}
}
注意,还要有pro文件
QT += sql
SOURCES +=main.cpp
QT += widgets