这篇文章主要介绍了windows 环境下使用 qt 连接 mysql的相关资料,需要的朋友可以参考下
如果应用只需要连接远程数据库,那么本地不需要mysql mysql,只需要找到 MySQL 提供的 libmysql.dll 和libmysqld.dll 两个动态连接库,把他们加入到 Qt安装目录5.9mingw53_32bin;默认 Qt 自带已编译好的 qsqlmysql.dll 和 qsqlmysqld.dll (文件路径为 Qt安装目录5.9mingw53_32pluginssqldrivers );两者如果配套就能成功地让 Qt 连接上 MySQL。
(我安装的Qt 版本是 Qt 5.9.0 mingw53_32,文章中提到的一些路径是我本机上的路径,需要进行适当修改)
一、测试 Qt 与 MySQL 是否能正常连接
假设 Qt安装目录5.9mingw53_32bin 下已加入了 libmysql.dll 和 libmysqld.dll,进行以下测试。
•新建 Qt Widgets Application,修改 main.cpp 的代码为:
#include "mainwindow.h" #include <qapplication> #include <qtsql> #include <qdebug> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); //建立连接 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setPort(3306); db.setDatabaseName("mysql"); db.setUserName("root"); db.setPassword("yourPassword"); //设置数据库连接账号的密码 bool ok = db.open(); if(ok) qDebug()<p>•构建并运行项目,查看应用程序输出<br>如果输出 OK,那到此为止了,Qt 与 MySQL 连接正常;如果输出 False,不出意外是因为 libmysql.dll、libmysqld.dll 与 qsqlmysql.dll、qsqlmysqld.dll版本不匹配!需要对 qsqlmysql.dll、qsqlmysqld.dll 进行修改。</p> <p><strong>二、添加 MySQL 的libmysql.dll、libmysqld.dll</strong></p> <p>(注意:Qt msvc2015_64 可以使用32<br>位、64 位版本的 MySQL 文件,Qt mingw53_32 只能使用 32 位版本的MySQL 文件)<br>之前提到,如果应用只需要连接远程数据库,那么本地不需要安装 MySQL,而只需要用到 MySQL 提供的动态连接库 libmysql.dll 和 libmysqld.dll。那么如果不安装MySQL,怎么获取那两个动态链接库文件?可以这样做:<br>•从已安装了 MySQL 的机器上拷贝这两个文件。<br>•本地临时安装 MySQL,然后保留下需要的文件,卸载 MySQL。</p> <p>安装 MySQL 可以去官网下载安装包,不过我不太喜欢这样做,因为现在 MySQL 的安装组件太多太杂,很多东西都是不必要。推荐去一些开源镜像站上下载对应版本,比如说 Tuna、USTC。临时安装 MySQL 之后先不急着卸载,后面编译 MySQL <a href="http://www.php.cn/wiki/1160.html" target="_blank">mysql</a>会用到。</p> <p><strong>三、重新编译 qsqlmysql.dll、qsqlmysqld.dll</strong></p> <p>编译 Qt 关于 MySQL 的驱动需要用到 Qt 的源码,获取 Qt 的源码可以使用 MaintenanceTool.exe 下载 Src,编译驱动用到的工程文件路径为 Qt安装目录5.9Srcqtbasesrcpluginssqldriversmysql 。源码差不多有2G的大小,而编译驱动需要用到的工程文件大约几十M,要是存储空间和网速不给力,建议只下载<br>qtbase-opensource-src-5.9.0.zip,需要的工程在 qtbase-opensource-src-5.9.0srcpluginssqldriversmysql 。</p> <p>用 Qt 打开上面提到的编译驱动用到的工程文件,在 mysql.pro 末尾加上这两句:<br>INCLUDEPATH += mysql安装目录include<br>LIBS += -Lmysql安装目录lib -llibmysql</p> <p>构建并运行项目会在 C 盘下生成 pluginssqldrivers 目录,里面包含 qsqlmysql.dll、qsqlmysqld.dll 两个文件,将它们复制一份覆盖原先的两个文件即可。再次进行 Qt 与 MySQL 的连接测试,成功了没有?<br></p></qdebug></qtsql></qapplication>
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END