首页 > 编程知识 正文

qtmysql驱动程序的简单介绍

时间:2023-11-30 11:44:52 阅读:310708 作者:SASA

本文目录一览:

  • 1、qt5.7怎么安装mysql驱动
  • 2、【求助】QT注册mysql驱动程序出现的问题
  • 3、如何解决Qt Mysql中无法加载驱动问题

qt5.7怎么安装mysql驱动

方法/步骤

1

下载mysql

C链接库

选择C的链接库

2

将C的连接库解压到到C:/mysql

目录下

3

我的QT

安装在C盘目录下,版本号是4.8.6

所以打开目录

C:QT4.8.6srcpluginssqldriversmysql

4

将C:/mysql/lib/libmysql.dll

和C:/mysql/lib/libmysql.lib

复制到此处。

5

编辑目录下的mysql.pro文件

添加

INCLUDEPATH+="C:/mysql/include"

LIBS+="C:/mysql/lib/opt/libmysql.lib"

运行qt的控制台窗口,方便使用qmake

切换到目录下

C:QT4.8.6srcpluginssqldriversmysql

执行qmake

运行VS2010的控制台工具

切换到

C:QT4.8.6srcpluginssqldriversmysql

目录下

执行nmake

和nmake

release

是nmake不是make

这样在C:QT4.8.6srcpluginssqldriversmysql

目录下的debug

目录和release

目录下分别会产生

qsqlmysqld4.dll

qsqlmysqld4.lib

qsqlmysql4.dll

qsqlmysql4.lib

将上面提到的四个文件复制到

C:QT4.8.6pluginssqldrivers

最后把

C:mysqlliboptlibmysql.dll

C:mysqlliboptlibmysql.lib

复制到

C:Windowssystem32

目录下。

最后测试mysql

可不可以在qt中正常使用

新建一个qt

控制台项目

输入以下代码

#include

QCoreApplication

#include

QDebug

#include

qstring.h

#include

qstringlist.h

#include

qsql.h

#include

qsqldatabase.hint

main(int

argc,

char

*argv[])

{

QCoreApplication

a(argc,

argv);

qDebug()

"Available

drivers:";

QStringList

drivers

=

QSqlDatabase::drivers();qDebug()

drivers;return

a.exec();

}

运行测试一下,看看有没有图片中红圈圈中的两项内容

【求助】QT注册mysql驱动程序出现的问题

哈哈,我也遇到了你的这个问题,我把我的解决方法给你,希望对你有用。

(1)dos下进入:D:Qt2010.05qtsrcpluginssqldriversmysql

(2)用记事本打开D:Qt2010.05qtsrcpluginssqldriversmysql mysql.pro文件,在第二行加入:

INCLUDEPATH += "C:Program FilesMySQLMySQL Server 5.1include"

LIBS += "C:Program FilesMySQLMySQL Server 5.1liboptlibmysql.lib"

并保存

(3)在dos下输入:qmake -o Makefile mysql.pro

此时可能也会提示:

WARNING: d:Qt2010.05qtsrcpluginssqldriversmysqlmysql.pro:2: Unescaped ba

ckslashes are deprecated.

WARNING: d:Qt2010.05qtsrcpluginssqldriversmysqlmysql.pro:2: Unescaped ba

ckslashes are deprecated.

WARNING: d:Qt2010.05qtsrcpluginssqldriversmysqlmysql.pro:2: Unescaped ba

ckslashes are deprecated.

但是好像对最后的结果没有影响

(4)在dos下输入:mingw32-make(使用nmake或者是make提示不是内部或外部命令,所以用了这个命令)

(5)此时在D:Qt2010.05qtpluginssqldrivers下多了四个文件:

qsqlmysql4.dll

libqsqlmysql4.a

qsqlmysqld4.dll

libqsqlmysqld4.a

(6)此时再运行程序应该就可以了。

如果还不行的话:将C:Program FilesMySQLMySQL Server 5.1liboptlibmysql.dll复制到运行程序所在目录或者system32目录

祝你好运!

如何解决Qt Mysql中无法加载驱动问题

本文讲解是如何解决Qt Mysql中无法加载驱动问题,MySQL是一个小型关系型数据库管理系统。对于已经融入到Qt中的MySQL,也是很推广!那么先看本文的介绍。

做毕业,这两天一个很大的问题困惑的我不行。毕设我是用qt + mysql来做的。结果在自己电脑上跑起来很正常,但是编译一个release版本,拿到另外一台电脑上就报错说:can't load driver 。试图去解决这个问题,今天总算搞定,这里总结一下。

首先需要说明的是:我用的是qt for vc2005,qt4.5.0 mysql server5.5

整个流程:

1:首先我编译了一个release版本,而后用dependency walker查看了下库的依赖情况。发现依赖于:QtSql4.dll,QtGui4.dll,QtCore4.dll,msvcr80.dll以及KERNEL32.DLL这几个库。其中最后一个是system的,我们不用去管,剩下的这几个显然都需要拷贝到exe同目录下。尤其是msvcr80.dll,我在我电脑上搜了一下:有多大10几个同名的该文件,所以拷贝哪个是很重要的,此时我们只需要在dependency walker查看这个dll的属性,然后去对应目录底下拷贝就行了。所以:第一步就是把这些依赖库拷贝到exe同目录下。(千万不要拷贝错误,尤其是不同的版本)。

2、做完1之后再次运行,提示:找不到驱动。 问了一下别人,告之需如下做:

(1)首先在exe同目录下建一个pluginssqldrivers这样的二级目录,而后将前边编译生成的qt-mysql驱动:qsqlmysql4.dll放到里边。

(2)而后在main.cpp中加上如下两句:

QString strLibPath(QDir::toNativeSeparators(QApplication::applicationDirPath())+QDir::separator()+ "plugins"); qApp.addLibraryPath(strLibPath);

做完这两部之后:按理应该没问题了,但是run一下发现:还是提示驱动找不到。

3、再后来,上网查了一下各种说法,发现几种可能性:①你要发布的电脑上没有安装mysql ②mysql版本不对。 我就纳闷了:找不到驱动与装没装mysql有什么关系?毕竟:驱动是我自己编译的,又不是mysql提供的。 问了下别人,别人也这么认为。然后就卡在这里了。 我不死心,继续在网上寻找各种可能的答案并进行尝试。最后找了问题,原来:我们需要把mysql提供的:libmySQL.dll这个库拷贝到exe同目录下(该文件在我自己电脑上处于:C:Program FilesMySQLMySQL Server 5.5bin文件夹下)。如此之后再来运行就不再报:找不到驱动这个错误啦!(此时报的是:连接不到某个指定的数据库,那是因为我还没有把数据库文件导入到目标机器上来)。

总结:在其他pc上发布的时候需要做如下工作:

1、使用depenency walker查看依赖库,全部拷贝到exe同文件夹下。

2、(1)在exe同目录下建一个pluginssqldrivers这样的二级目录,而后将前边编译生成的qt-mysql驱动:qsqlmysql4.dll放到里边。

(2)而后在main.cpp中加上如下两句:

QString strLibPath(QDir::toNativeSeparators(QApplication::applicationDirPath())+QDir::separator()+ "plugins"); qApp.addLibraryPath(strLibPath);

3、将mysql/bin目录下的libmySQL.dll拷贝到exe同目录下。

做完以上几步之后就OK了。

至于最后所报的连接不到指定的数据库,原因是这样的:

在开发的电脑上:你建了一个mysql数据库,那么我们需要把这个数据库文件也拷贝到目标机器上,并在目标机器上装mysql,而后将这个数据库文件导入进去。 导入之后你会发现:各字段的数据有可能出现乱码,这是由于各个字段的编码格式在开发机器和目标机器上不一致 导致的! 你需要按照开发机器上的数据库文件配置来重新设置一下目标机器的各个字段编码格式。

而在目标机器上导入数据库文件的方法是:(以建立的数据路名为buaa.sql为例)

1、在目标机器上装mysql

2、命令行运行mysql,进入后执行命令:create database buaa;

3、导入buaa.sql到刚创建的buaa数据库中。(我用的mysql-front这个数据库图形化工具)。

测试: Qt4.5.0commercial + vc2005 express + mysql5.5 +mysql-front +windows xp

(网上很多人说:找不到驱动是因为目标机器上没有安装vc运行时库的原因,但是我这里没有遇到这个问题:我测试的电脑没有任何vc环境,没有任何qt环境,也没有安装windows sdk。 但是如果大家按照我上边的方法测试发现有问题时:可以考虑在目标机器上安装vc运行时库试一下。它分sp1版本和 非sp1版本,你对应主机的vc版本选择一个安装就是。)

小结:关于如何解决Qt Mysql中无法加载驱动问题,介绍完了,好像出现此问题的友们还是有很多滴,希望本文对你有所帮助。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。