起点0615的个人主页

http://www.qtcn.org/bbs/u/145133  [收藏] [复制]

起点0615

与时具进,掌握最新技术!!

  • 8

    关注

  • 7

    粉丝

  • 10

    访客

  • 等级:新手上路
  • 总积分:48
  • 男,1992-07-15

最后登录:2021-11-20

更多资料

日志

qt5.0.2连接mysql

2013-10-27 16:09

在过去的一个星期中,我用了很多时间去编译mysql驱动,从百度、谷歌等网站搜了N多次,试尽了N多种方法,我从QT4.7、Qt4.8.0、Qt4.8.5、Qt5.0.2到Qt5.1.1各个版本的Qt都 试了个遍,后来就在想是不是操作系统的原因,我又花了一些时间去编译在不同的操作系统(win764bit/xp/ubuntu12.04),结果没一个是可行的。踏破铁鞋无觅处,得来全不费功夫。
   首先声明一下,本次实验是在xp系统下完成的,对于win7下的目前还没有测试过,不过本人觉得,win732位的编译与xp下应该是一样的……
   Qt5.0.2开源版本默认是不提供QMySQL驱动的,在这篇文档中主要讲述xp环境下如何使用MinGW为Qt5.0编译QMySQL驱动。

第一步:安装Qt5.0.2 下面一个一下载QT的网址
http://download.qt-project.org/official_releases/qt/5.0/5.0.2/qt-windows-opensource-5.0.2-mingw47_32-x86-offline.exe
   这里我把Qt安半装在:C:\Qt

第二步:安装mysql (在这里我所安装的是版本是mysql-5.5.29-win32)
   将MySQL安装在C盘自建目录MySQL中,尽量不使用Programfiles目录(空格)可能引起莫名的路径问题。(这是网上查找资料时发现的一句话,没有测试过究竟是不是真的)
   在xp里我的mysql安装的路径是: C:\mysql

到这里,我把Qt及mysql都安装完毕;首先测试一下mysql:  #include <QtGui/QApplication>
#include <QtSql>
#include <QDebug>
void openDb(){    
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");    
    db.setDatabaseName("kechenshiji");//确认数据库存在与否
    db.setUserName("root");    
    db.setPassword("a"); //记得改密码哦
    bool ret = db.open();    
    if (ret){
       qDebug("open db ok");  
       QSqlQuery query( "SELECT xuelimingchen FROM xuelibiao" );
       while(query.next())
       {
           qDebug()<<query.value(0).toString();
       }  
    } else {
       qDebug("open db failed");
       qDebug() << db.lastError().text();
     }
}
int main(int argc, char *argv[]){
    QApplication a(argc, argv);
    openDb();
    return a.exec();
}


这是一段测试mysql驱动的程序。
在Qt中运行这段程序,会报以下的错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase:available drivers: QSQLITE QODBC QODBC3


即也就是说mysql驱动没有加载成功。

接下来的事情当然就是这编文档的主题了:
第三步:打开Qt5.0.2命令行界面
启动方式:开始菜单=>>所有程序==>>Qt5.0.2==>>Qt5.0.2==>>MinGW4.7==>>Qt 5.0.2 for Desktop (MinGW 4.7)

第四步:运行命令
进入目录: Cd C:\Qt\Qt5.0.2\5.0.2\Src\qtbase\src\plugins\sqldrivers\mysql
要mysql文件夹中有内个文件,其中.pro文件是接下来要编译的文件,
qmake "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\lib\libmysql.lib"-o Makefile mysql.pro
编译完成后,在mysql文件夹中会生成几个Makefile文件和.moc、.obj文件夹。

最后一步运行:
mingw32-make  

如果运行完这一步在命令行界面不显示任何错误时 便是晴天。

至此,mysql驱动已编译完成。相应的会在C:\Qt\Qt5.0.2\5.0.2\Src\qtbase\plugins\sqldrivers
文件夹下生成qsqlmysql.dll和qsqlmysqld.dll文件。
  
如果没找到qsqlmysql.dll和qsqlmysqld.dll,呵呵……
确定没有漏到以上的每一步骤,或者你的系统是64位(再次声明本方法适用于32位系统)……

第五步:配置mysql驱动
   拷贝qsqlmysql.dll和qsqlmysqld.dll到C:\Qt\Qt5.0.2\5.0.2\mingw47_32\plugins\sqldrivers文件夹下,同时从C:\mysql\lib目录下复制文件libmysql.dll到目录C:\Qt\Qt5.0.2\5.0.2\mingw47_32\bin,
  
终于到这一步了,宣布mysql驱动编译完成……

轻松一刻:测试第二步中的程序
运行结果:
C:\zwy\qt\build-mysql-Desktop_Qt_5_0_2_MinGW_32bit-Release\release\mysql启动中...
"无学历"
"小学"
"初中"
"中专"
"高中"
"大专"
"本科"
open db ok
分类:qt+ mysql|回复:0|浏览:2073|全站可见|转载
 

Powered by phpwind v8.7 Certificate Copyright Time now is:04-25 23:21
©2005-2016 QTCN开发网 版权所有 Gzip disabled