Qt5.11.2 mingw53 32位 使用MySQL5.7.24

最近的C++大作业需要用到Qt和数据库,在此记录下使用数据库中遇到的问题和解决办法。使用的软件相关版本为Qt5.11.2 mingw5.3 32位、MySQL 5.7.24

下载安装MySQL

首先在MySQL官网下载MySQL5.7.24 installer
https://dev.mysql.com/downloads/installer/

Qt5.11.2 mingw53 32位 使用MySQL5.7.24_第1张图片

默认视图

 

这里默认是最新版,点击左侧的Looking for...即可获取5.7.x版本

Qt5.11.2 mingw53 32位 使用MySQL5.7.24_第2张图片

5.7.24

选择第二个下载,之后安装,安装的话按照默认选项即可,注意设置的密码要记牢。

接着下载MySQL server 5.7.24的32位zip包
https://dev.mysql.com/downloads/mysql/
跟之前一样,点击右侧,即可下载5.7.x版本

Qt5.11.2 mingw53 32位 使用MySQL5.7.24_第3张图片

server


选择第一个下载。

Qt5.11.2 mingw53 32位 使用MySQL5.7.24_第4张图片

5.7.24 server

 

下载后解压,将lib文件夹下的libmysql.dll和libmysql.lib复制到qt里,我这里的目录是C:\Qt\Qt5.11.2\5.11.2\mingw53_32\lib,你可以替换到相应的目录。

Qt5.11.2 mingw53 32位 使用MySQL5.7.24_第5张图片

dll和lib

测试MySQL

之后打开MySQL 5.7 的命令行,测试一下安装效果

Qt5.11.2 mingw53 32位 使用MySQL5.7.24_第6张图片

MySQL 5.7 CLC

 

输入密码登录后,输入:

show databases;

即可查看已经存在的数据库,初始安装的数据库跟我这里不太一样,因为我自己加了一些测试。

 

Qt5.11.2 mingw53 32位 使用MySQL5.7.24_第7张图片

使用MySQL

ok能看到这些,基本说明数据库安装没有问题了(其实安装时,已经执行了检测了,这里只是自己试一下)。关于数据库的使用,这里推荐一份教程https://www.yiibai.com/mysql。

在Qt中使用数据库

首先我们先导入一份数据,http://www.yiibai.com/downloads/yiibaidb.zip在这里下载。

解压出来的yiibaidb.sql放到一个文件夹里,比如D:目录下,接着打开MySQL命令行,执行以下操作导入这个数据库。这里的目录替换成你的响应目录

CREATE DATABASE IF NOT EXISTS yiibaidb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
use yiibaidb;
source D:/yiibaidb.sql;
select city,phone,country from `offices`;

执行效果如下,说明导入成功且没有问题。

 

Qt5.11.2 mingw53 32位 使用MySQL5.7.24_第8张图片

执行命令

接着,打开Qt Creator,开始写代码,测试Qt使用数据库的情况。
新建一个Qt console 项目,项目命名随意,我这是testMySQL,构建套件选择mingw 32位

Qt5.11.2 mingw53 32位 使用MySQL5.7.24_第9张图片

2018-12-05_205000.png

Qt5.11.2 mingw53 32位 使用MySQL5.7.24_第10张图片

2018-12-05_205027.png

因为使用了数据库模块,所以需要在在.pro文件里添加上QT+=sql

Qt5.11.2 mingw53 32位 使用MySQL5.7.24_第11张图片

QT+=sql

将main.cpp的内容修改如下:
注意这里需要将setPassword的参数修改为你自己的密码

#include 
#include 
#include 

int main(int argc, char *argv[]){
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

    db.setHostName("localhost");
    db.setDatabaseName("yiibaidb");
    db.setUserName("root");
    db.setPassword("你自己的密码");
    if(!db.open()) {
        qDebug() << "error!\n";
    } else {
        qDebug() << "Open";
    }
    QSqlQuery query(db);
    query.exec("select * from offices;");

    while(query.next ()) {
        qDebug() << query.value ("phone").toString ();
    }
    return 0;
}

编译运行,得到如下结果即说明正确,可以愉快地使用Qt和数据库

Qt5.11.2 mingw53 32位 使用MySQL5.7.24_第12张图片

运行结果

你可能感兴趣的:(Qt,教程)