Qt下连接mysql
由于项目的需要,要用qt连接mysql数据库。折腾了老半天终于搞出来了,感觉十分的欣慰。
操作系统win7旗舰版sp1.
下载过程:
1:下载mysql
我下载的版本是5.6.10官方正式版(for windows32位) 下载地址如下所示:http://www.xiazaiba.com/html/361.html
2:下载qt
我下载的版本是 qt-win-opensource-4.8.2-vs2010.exe
3:下载vs2010的qt插件
也是图个方便,在vs上能够开发qt程序,我下载的版本是:qt-vs-addin-1.1.11-opensource.exe
安装过程:
1:安装mysql
安装mysql,我选择的是全部安装,貌似是因为这样可以产生mysql相应的接口文件。
找到mysql的安装路径,可以看到其中的include和lib文件,这两个文件是后面生成mysql驱动所必须依赖的文件。
为了简化路径和方便后面的安装,复制include和lib文件到C:\Qtmysql
2:安装qt-win-opensource-4.8.2-vs2010.exe
这个按照安装向导直接一步一步安装就可以了,我选择的安装路径是:C:\Qt\4.8.2。安装完成后,可以发现C:\Qt\4.8.2\src\plugins\sqldrivers的路径下面有一个readme的文件,打开有这样一段话:
Pleasenote that the DB2, Oracle and TDS client drivers are notdistributed with the Qt Open Source Editions.
This isbecause the client libraries are distributed under a license whichis not compatible with the GPL license.
大致意思就是DB2,Oracle,TDS的数据库客户端驱动在qt的开源版本中是没有发布的,原因是这些客户端库的发行许可证和GPL许可证不兼容。
mysql是已经被Oracle 收购的,所以mysql的驱动需要我们自己来编译。接下来就进入最核心的编译阶段。
首先打开qt的command prompt,这个有点类似cmd,打开方式如下所示:
然后定位到:
接着执行qmake命令:
执行完毕后执行nmake命令
执行结果如下图所示:
还有很长一段没有贴出来。命令执行完毕后,可以发现在原来的文件夹下:
C:\Qt\4.8.2\src\plugins\sqldrivers\mysql多了好几个文件,其中打开debug文件可以发现有:
网上很多说生成了4个文件,不过我这里只有libmysql.dll和libmysql.lib这两个文件,将这两个文件复制到:C:\Qt\4.8.2\plugins\sqldrivers里面,运行测试程序:
qDebug() << "Availabledrivers:";
QStringList drivers =QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "\t "<<driver;
qDebug() << "End";
结果还是没有出现mysql的驱动,这个时候把mysql安装文件下的lib中的libmysql.dll复制到C:\Qt\4.8.2\bin,这个时候再运行测试程序:
从中可以发现出现了mysql的驱动程序。