Qt5中配置MySQL
本人小白一枚,记录下自己的学习过程,还请大家多多批评指正。
1.查看Qt的版本
方法一:开始菜单的Qt5.11.3 for Desktop(MinGW 5.3.0 32 bit)表明Qt是32 bit的;
方法二:mingw53_32也表明Qt是32 bit的。
2.下载并安装MySQL
打开官网MySQL点击DOWNLOADS,
滑到页面下方点击MySQL Community (GPL) Downloads »,
然后进入并点击MySQL Installer for Windows,
从这里选择以前的版本
我选择的版本是5.7.28
然后点击不注册,直接下载,
下载之后是
接下来双击,开始安装程序,安装过程这里参考: MySQL5.7选择Developer Default,然后Next,中间还需要设置密码等操作。
安装完成界面:
3.验证登录MySQL
从开始菜单中找到MySQL中的MySQL5.7 Command Line Client –Unicode打开,
然后输入密码(安装过程中设置的密码),此时出现的界面表示成功安装,输入show databases;验证。
4.用MySQL创建数据库
以管理员身份进入cmd,然后输入net start MySQL57,显示请求的服务已启动;
然后输入mysql –u root –p报错,
解决办法:右击电脑—属性—高级系统设置—环境变量—双击用户变量里的Path
添加新的变量C:\Program Files\MySQL\MySQL Server 5.7\bin
然后再输入mysql -u root –p,输入密码,输入create database HelloWorld;
这时可以看到C:\ProgramData\MySQL\MySQL Server 5.7\Data(这是默认保存路径可修改)目录下生成了一个helloworld的database(数据库)。
5.查看MySQL版本及状态信息
在开始菜单打开命令行MySQL 5.7 Command Line Client - Unicode,输入密码之后,输入show variables like ‘%version_%’;即可。
输入status,显示MySQL的状态信息。
6.使用workbench可视化
从开始菜单找到MySQL中的MySQL Workbench 8.0 CE打开,单击灰色区域,输入密码,
进入可视化界面,workbench可视化平台是比较直观方便的。
7.Qt连接MySQL
在Qt中新建Empty qmake Project项目,命名为mysqlconnection,然后添加头文件connection.h和main.cpp文件。首先在.pro项目文件中添加一行代码QT+=sql widgets,然后往connection.h中添加如下代码:
#ifndef CONNECTION_H #define CONNECTION_H #include <QSqlDatabase> #include <QMessageBox> #include <qDebug> #include <QSqlError> //创建连接 static bool createConnection() { QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");//添加一个默认连接,数据库驱动为QMYSQL //设置主机名有两种方式 //db.setHostName("127.0.0.1");//设置主机名,从MySQL的Workbench中查看 db.setHostName("localhost");//设置主机名 db.setPort(3306);//设置端口 db.setDatabaseName("helloworld");//设置数据库名(这个数据库必须是已经存在的数据库) db.setUserName("root");//设置用户名 db.setPassword("************");//设置密码(你自己的密码) if(!db.open()) { QMessageBox::critical(0,"Cannot open database", "Unable to establish a database connection.",QMessageBox::Cancel);//提示出错 qDebug()<<db.lastError().text();//输出错误信息 return false; } else { QMessageBox::information(0,"Successfully","Establish a database connection",QMessageBox::Ok);//提示成功 } return true; } #endif // CONNECTION_H
注意:这里的数据库是已经存在的数据库。SQLite是文件型数据库,可以在Qt中直接创建,但MySQL不是,MySQL需要额外安装数据库引擎,所以必须事先创建一个数据库,Qt才能创建与该数据库的连接。
然后往main.cpp中添加如下代码:
#include <QApplication> #include <QDebug> #include "connection.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); if(!createConnection()) return 0; return a.exec(); }
运行程序报错:
原因一:缺少文件
解决办法:从C:\Program Files\MySQL\MySQL Server 5.7\lib中将libmysql.dll文件复制到C:\Qt\Qt5.11.3\5.11.3\mingw53_32\bin中,如下图所示:
然后运行程序,仍然报相同的错误。
原因二:Qt Creator(32 bit)与MySQL(64 bit)位数不统一
解决办法:
(1) 卸载当前64 bit的MySQL,重装32 bit的MySQL;(不推荐)
(2) 下载Qt源码文件,重新编译MySQL驱动;(不推荐),可参考大神文章https://segmentfault.com/a/1190000005691216
(3) 从官网connector-c下载32 bit的zip压缩包,我这里下载的是mysql-connector-c-6.1.11-win32.zip
(补充:MySQL Product Archives中提供各种MySQL产品的存档版本。基于旧版本软件的现有安装可能需要复制这些文件。)
在其lib文件夹下找到libmysql.dll和libmysql.lib两个文件,将它们复制到C:\Qt\Qt5.11.3\5.11.3\mingw53_32\bin目录下(如下图),然后重启Qt Creator后重新打开工程就可以正确运行了。
数据库连接建立成功结果为:
总之:必须保证libmysql.dll和libmysql.lib两个文件对应的MySQL位数与Qt的位数相同。
- 点赞
- 收藏
- 分享
- 文章举报
- Qt Creator快速入门_第三版(霍亚飞)学习中踩过的坑
- VS2008下qt连接VS2005方法
- QT 5.9 93页例子
- Qt编译报错:未找到文件main.obj
- Qt QSystenTrayIcon弹出Qmenu时不是位置偏移的问题
- VVC代码学习2:帧内亮度预测函数estIntraPredLumaQT
- 工厂有库存的我司高价IMX377CQT-C回收IMX317CQC-C长期回收OV芯片
- Qt+VS2015 关于exe文件的图标
- QT配置halcon&opencv(VS)
- Qt图像实时采集及边缘提取(多线程)
- Qt 连接SQL Server数据库出现的几点问题
- Failure to open file: /usr/lib/qt4/examples/dialogs/tabdialog/Makefile
- Qt读取wav文件处理音频数据时的格式转换问题
- Qt sqlite多条件查询插入QTableWidget表格(记录备份以防忘记,新手!)
- 搭建pyqt5环境
- pyqt深入学习
- windows环境下Qt连接MySql
- QT4.8.7安装详细教程(MinGW 4.8.2和QTCreator4.2.0)
- ubuntu 环境 cross compile 交叉编译 ARM Qt 集成 opencv
- $fhqTreap$