windows10下 QT5.10成功连接MySQL5.7
注意:QT和MySQL的保持位数一样,我这里选择的都是32bit(99%建议要一样)
建议是:先阅读整篇文章特别注意标注的部分再开始安装
爬了两天坑!!!
1.QT安装(MinGW 32bit)
1.1.运行qt的安装程序,
选择安装目录,我选择E:\QT\qt5.10.1
选择需要的组件:
- 基本组件中的mingw
- source
- 其它自己需要的
- tools中的mingw
- tools中的qt creator
1.2.配置qt creator:
在开始菜单中找到qt creator4.5.1,打开,在菜单“工具”-“选项”-“构建和运行”-“编译器”中,可以看到qt creator自己已经找到了的c和c++编译器,是刚刚安装的qt的tools里面的mingw:
注意:这里记住安装的路径
2.MySQL安装(5.7.27 32bit)
2.1.官网下载mysql-5.7.27-win32.zip
下载网址为:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-win32.zip
2.2.解压到文件E:\MySQL 当然也可以时其它盘,并配置环境变量
右击计算机->属性->高级系统设置->环境变量->系统变量path 后添加 E:\MySQL\bin
2.3.在刚刚解压的根目录(即d:\mysql目录下)下,新建一个文本文件my.ini,将如下内容放入my.ini(格式为ANSI文本)文件中:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir="E:\\MySQL"
# 这里地址记得加引号,不然不能正常启动。
# 设置mysql数据库的数据的存放目录
datadir="E:\\MySQL\\data"
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine
4.以管理员身份运行cmd.exe(右击开始菜单->命令提示符) ,进入E:\MySQL\bin 目录下:1.e: 2.cd E:\MySQL\bin
5.初始化数据库 执行命令: mysqld --initialize-insecure ,这个命令设置root用户密码为空
6. 安装服务 执行命令:mysqld -install
7.启动服务 执行命令:net start mysql**
8.运行mysql 执行命令:mysql -uroot -p 进入mysql控制台
提示输入密码时,直接回车。(因为上面初始化时设置了没有密码)
9.修改密码:
update mysql.user set authentication_string=password(‘your password’) where user=‘root’;
3、编译、安装qt的mysql接口库
3.1. 用管理员权限打开qt的命令行(注意必须是开始菜单里qt文件夹下的那个qt的命令行,不能是普通命令行),进入mysql驱动的源码工程目录E:\Qt\Qt5.10.1\5.10.1\Src\qtbase\src\plugins\sqldrivers\mysql
注意:没有src文件可以百度下载一个
3.2.用文本编辑器打开mysql.pro,修改内容如下:
#QMAKE_USE += mysql
QMAKE_LFLAGS +=e:/MySQL/lib/libmysql.dll
3.3.修改上一层目录中的qsqldriverbase.pri,修改内容如下:
# For QMAKE_USE in the parent projects.
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include($$shadowed($$PWD)/configure.pri)
3.4回到刚刚打开的qt命令行,执行命令:
qmake "INCLUDEPATH+=e:\\MySQL\\include\\" "LIBS+=e:\\MySQL\\lib\\libmysql.lib" -o Makefile mysql.pro
此时可以正常产生Makefile文件,继续执行命令
mingw32-make -r -j
注意:路径一定不能有空格
3.5.最后,把 E:\MySQL\lib目录下的文件 libmysql.dll 和 libmysqld.dll 拷贝到qt creator的配置中编译器所在的目录E:\QT\qt5.10.1\mingw_32\bin; libmysql.lib 和 libmysqld.lib拷贝到E:\QT\qt5.10.1\mingw_32\lib。
**注意:如果怕不成功,也有博主说可以把下面的5个文件都复制到E:\QT\qt5.10.1\mingw_32\bin **
3.6.测试
(1)新建QT文件
在.pro中加入 QT +=sql
(3)代码
#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;
}
(3)结果
成功连接!
参考文章:http://blog.sina.com.cn/s/blog_7d668e960102x5lu.html