目录
- 1.下载并安装mysql
- 2.配置环境变量
- 3.QT部分
- 前提条件
- 测试
- 补充
为了方便和简洁,我选择的是最简单的方法去完成(虽然因为一堆报错搞崩了心态)
1.下载并安装MySQL
MySQL官网
选择Downloads
下拉找到社区版
因为是在window上运行MySQL,便选择Windows安装包
这个界面可以选择版本,默认就行,两里面挑一个(网络稳定可以选第一个)
这里选择第二个下载
只是白嫖并且没有社区要求的话,直接选这个就行
下好后会有一个msi文件,双击运行,之后会在C:\Program Files (x86)\MySQL下安装一编程个
MySQL Inst编程aller for WiUbPyuPqOndows
(现在用不到,重装和安装别的版本的时候会用到)
选择需要的版本(第一次运行可能只有一个8.0),点击右箭头,选中版本
这里会有自定义安装路径和数据库路径的设置,这里修改文件夹名字里的空格为-(或者默认)
一路下一步到这里
(因为已经装了8.0,3306口占用了)
这里也是下一步
这里输入root用户的密码,记得住就行
下一步,一直点点到结束
2.配置环境变量
复制mysql的安装路径,这里是C:\Program Files\MySQL\MySQL-Server-8.0
win+i打开设置>单击系统>下拉点击系统信息>在设备规格单击高级系统设置
变量名无所谓,够直观就行(中文不行)
根据序号点击,在第三步,新建的是你自己的变量名,且记住带百分号 %<变量名>%/bin(不打码了,懒)
然后win+r,输入cnm,键入MySQL,回车,不出意料,应该是这样的
这时键入命令
mysql -uroot -p
输入安装时设置的密码,
3.QT部分
前提条件
安装时选择了source,验证安没安装,只要打开qt的安装目录,选择版本号文件夹,看看有没有src文件夹
这里或许会有别的什么文件夹,不影响,有src文件夹,就继续,没有就下吧(建议直接重装)
1.复制MySQL安装目录
2.打开mysql.pro 路径一般在
..\Src\qtbase\src\plugins\sqldrivers\mysql
前面的两个点是你的qt版本号目录
双击.pro文件
修改如下(复制粘贴就行)
TARGET = qsqlmysql HEADERS += $$PWD/qsql_mysql_p.h SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp #QMAKE_USE += mysql OTHER_FILES += mysql.json PLUGIN_CLASS_NAME = QMYSQLDriverPlugin include(../qsqldriverbase.pri) win32:LIBS += "C:\Program Files\MySQL\MySQL-Server-8.0\lib\libmysql.lib" INCLUDEPATH += "C:\Program Files\MySQL\MySQL-Server-8.0\include" DESTDIR = ../mysql/lib/
这里需要根据具体情况修改的是这里的两个路径
你需要把C:\Program Files\MySQL\MySQL-Server-8.0这一坨换成第一步复制的mysql路径
修改完后选择qsqldriverbase
修改 qsqldriverbase.pri  编程客栈;
QT = core core-private sql-private # For QMAKE_USE in the parent projects. #include($$shadowed($$PWD)/qtsqldrivers-config.pri) include(./configure.pri) PLUGIN_TYPE = sqldrivers load(qt_plugin) DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
这里注释了第4行,追加了第5行
这里准备就绪后先别急
1.先检查环境里是否包含qt安装目录下的bin文件夹(运行编译器必要的)
2.返回上一级目录,检查是否有build开头的文件夹(有就删了)
到这,单击小锤子
如果没有报错,build的绿条会一路到底
右键pro文件,在资源管理器里打开
不出意外,会出现一个lib文件夹
打开它
复制dll文件
打开目录 D:\Qt\Qt5.12.12\5.12.12\msvc2017_64\plugins\sqldrivers,粘贴文件:
再到MySQL安装目录里C:\Program Files\MySQL\MySQL-Server-8.0\lib,复制 libmysql.dll和libmysql.lib 到 D:\Qt\Qt5.12.12\5.12.12\msvc2017_64\bin
到这,差不多了(理论上)
重启qt
测试
写一下简单的链接数据库的代码
#include "widget.h" #include "ui_widget.h" #include <QSqlDatabase> #include <QSqlError> #include <QDebug> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); QSqlDatabase db1 = QSqlDatabase(); db = db1.addDatabase("QMYSQL"); db.setHostName("127.0.0.1"); db.setPassword("root"); db.setUserName("root"); db.setDatabaseName("sys"); if(!db.open()){ qDebug() << db.lastError().text(); } else{ qDebug() << "OK"; return; } } Widget::~Widget() { delete ui; }
运行测试
补充
如果有看部分qt教学课程,看到代码是
QSqlDatabase db = QSqlDatabase(); db.addDatabase("QMYSQL");
这会报错,“Driver not loaded Driver not loaded”
这段代码的问题在于,首先创建了一个 QSqlDatabase
对象的实例,但没有给它传递任何参数。这意味着没有指定要使用的数据库驱动。然后,使用 addDatabase()
方法添加一个数据库驱动,但这并不会给 db
对象创建一个新的连接。相反,它会返回一个新的 QSqlDatabase
对象,而该对象才是我们真正需要的
还有另一种方法
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
一行解决,简单明了
到这应该就没问题了
到此这篇关于QT5.12连接MySQL的实现的文章就介绍到这了,更多相关QT5.12连接MySQL内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多
精彩评论