【QT 数据库专辑】【02】WIN7下搭建本地MYSQL数据库02 - 建立数据库的驱动程序-QT为例-完备版

17 篇文章 0 订阅
13 篇文章 0 订阅

前言:

前一段时间项目紧张的,调一个数据库,总是连不上MySQL,于是用QT自己的SQLlite,好像也是可以的。直到,朴树把猎户星座的专辑自己给推翻了,重新在11-15日又发行了一把,暗暗佩服!今天不服,把MySQL的驱动一点一点给调了出来,遇到好些问题,都细致记录下来,算是对朴树新专辑发行的告慰一下。

基本上,对QT最新的版本的构建,大家只要注意我的红色部分就可以了。

0 环境设置:

本例的环境如下:
1 windows7 64位

2 QT的编译器版本是 32位还是64位:
QT5.6.2 MigGW 32bit (注意这个32位的编译器是我们目前用的)将来后面的库就要放到这个编译器的bin目录里面去

3 MySQL是否已经安装,安装好了之后,你需要有MySQL的一个数据库,同时需要一个访问这个数据库的用户名和密码。
Your MySQL connection id is 8
Server version: 5.7.17-log MySQL Community Server (GPL)

mysql> show global variables like 'port';
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    12
Current database: *** NONE ***

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set, 1 warning (1.94 sec)


1 数据库驱动问题的表现:

在连接MySQL数据库的时候,QT应用程序会自动弹出下面的消息:


应用程序打印的输出如下:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL

上面显示,其实数据库已经available 但是,没有loaded

2 下载和安装完整版本的MYSQL:(如果你没有的话)

2.1 百度云盘分享

上一节我们讲到安装MYSQL,这里分享一个安装的链接:

http://pan.baidu.com/s/1b48RNK

2.2 官网下载

mysql http://dev.mysql.com/downloads/ 

2.3 安装MYSQL:

直接选择FUll,安装include和lib文件夹

拿到的include lib后面需要放到你用到的编译器来编译生成需要的库文件。


4 高版本5.0以上版本直接 COPY MYSQL的连接库到QT的工作目录:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL
前面的QT的应用程序打印里面,其实,已经告诉我们QMYSQL的驱动已经有了,第3节的编译其实就是生成这个驱动。

但是,现在驱动已经有了,还是出现了驱动没有安装的问题,这里一般主要是驱动文件的dll的文件路径找不到了,或者是版本不对

4.1 步骤1 获取Mysql连接库

网上看了很多资料,结果,搞了很久,总是不对,其实,主要是一个问题:版本问题,
我们必须注意QT编译器的版本和Mysql的动态库的版本。
一般分为32位和64位不同

4.1.1 Mysql的dll lib文件

这两个文件在我的文件分享里面已经有了:

http://download.csdn.net/download/yellow_hill/10109819

在我的源文件分享包里 有Mysql的源码包,

路径:MySQL\mysql-connector-c-6.1.11-win32\mysql-connector-c-6.1.11-win32\lib

包含,libmysql.dll,libmysql.lib 两个我们需要用到的MYSQL的库和连接动态库

也可以直接去网站注册下载:

include 和 lib 来自于MySQL connector /C 的源文件,

具体链接如下:

https://www.mysql.com/downloads/



注意我们要选择32位的mysql connector来和QT32位编译器进行匹配。

4.1.2 QT的编译器(用了放我们要用到的连接库)

然后我们需要知道编译器的路径:

C:\Qt\5.6\mingw49_32\bin

4.2 步骤2 我们需要做什么呢

copy  libmysql.dll,libmysql.lib 这两个文件到C:\Qt\5.6\mingw49_32\bin 下就可以了
这个时候,
driver not loaded

的弹框,会被你的MYSQL数据库的访问权限的弹框取代




3 低版本构建数据库驱动:(后来发现低版本才需要)

既然是构建驱动,那么,很显然,我们需要用数据库驱动的源码,然后,用目前项目用到的编译器来进行编译。(山谷案:这是基本原理)

由于QT的免费社区版本没有准备这些你需要的源码,那么你必须准备,这在做过linux项目的工程来看,是非常稀松平常的一件事情。

3.1 准备lib和path

编译之前,显然,你需要把编译路径准备好,在linux里面也许只需要更改 makefile的配置文件,

在windows里面你需将QT的bin目录和mingw的目录都添加到环境变量的path中。添加的方法,请百度一下

也可以参照这个连接:https://jingyan.baidu.com/article/d5a880eb6aca7213f047cc6c.html


C:\Qt\Tools\MinGW\bin
C:\Qt\5.6\mingw49_32\bin

3.2 修改项目文件:

添加:需要加入的Mysql的库名到项目配置文件里面,这里就是PRO的文件,后面,编译的时候需要编译这个配置文件。

libmysql.lib这个文件是最好我们用项目使用的编译器来编译的库文件,mysql下载的库也许并不好用,理由是编译器不一样,尤其是64位和32位搞混的时候。

INCLUDEPATH += "E:\mysql\include"
LIBS+= "E:/mysql/lib/libmysql.lib"

3.3 编译生成驱动库

3.3.1 确认编译器

你需要首先知道你用的,或者之前项目用的是哪个编译器,由于QT支持的平台多,跨平台的特性,也决定他的编译器选择众多,
本例的编译器选择看下图:



上图默认的就是你现在使用的编译器,然后,点击Manage你可得到你现在编译器的路径:



上面这个地址就是你现在编译器的地址(确认这个之后,我们就用这个编译器去生成MYSQL的数据库文件)

然后,我们需要


3.3.2 准备要编译的源文件

将前面mysql安装目录下的include和lib两个源文件的文件夹拷贝到现在你的编译器所在的地方备用,准备生成驱动文件。

一般为下面这个目录里面

src\plugins\sqldrivers\mysql

我的项目构建如下:

C:\Qt\5.6\mingw49_32\plugins\sqldrivers\mysql





3.3.3 编译生成makefile 

然后,开始我们的重头戏,编译MYSQL库文件,

目的配置,由于我的项目文件Demo7在E盘的其他地方,所以编译的时候,需要重新指定一下。(路径指定的时候一定要注意等号两边都不要加空格,否则编译不通)

C:\Qt\5.6\mingw49_32\plugins\sqldrivers\mysql>qmake INCLUDEPATH+="E:\mysql\include" LIBS+="E:\mysql\lib\libmysql.lib"  E:\QT\demo7\Demo07\Demo07.pro




编译后,会生成:在mysql目录下生成了debug和release的makefile文件Makefile.Debug和Makefile.Release。(之前只有include lib 目录)


3.3.4 开始编译生成我们需要的驱动库文件

上一届我们是在qmake的直接写参数,INCLUDEPATH+="E:\mysql\include" LIBS+="E:\mysql\lib\libmysql.lib" ,其实,qtcreator 的项目配置里面也可以配置

INCLUDEPATH+="E:\mysql\include" LIBS+="E:\mysql\lib\libmysql.lib" 

首先需要确认一下QT的项目文件里面的制定是否正确,最保险的方式是直接路径指定好。

我们现在还是直接路径指定来生产驱动文件,

然后,开始编译

C:\Qt\5.6\mingw49_32\plugins\sqldrivers\mysql>mingw32-make release

编译后,会生成我们需要的dll 和 库文件



参考:

1 Qt4.8.5 配置mysql驱动

http://blog.csdn.net/lixiaowei16/article/details/45917657

2 QT连接MySQL

http://www.cnblogs.com/zhaotian/p/5790068.html








ref:

http://jingyan.baidu.com/article/27fa7326ffb99146f8271fe0.html


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Franklin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值