如果应用只需要连接远程数据库,那么本地不需要安装 MySQL,只需要找到 MySQL 提供的 libmysql.dll 和libmysqld.dll 两个动态连接库,把他们加入到 Qt安装目录\5.9\mingw53_32\bin\;默认 Qt 自带已编译好的 qsqlmysql.dll 和 qsqlmysqld.dll (文件路径为 Qt安装目录\5.9\mingw53_32\plugins\sqldrivers\ );两者如果配套就能成功地让 Qt 连接上 MySQL。
(我安装的Qt 版本是 Qt 5.9.0 mingw53_32,文章中提到的一些路径是我本机上的路径,需要进行适当修改)
一、测试 Qt 与 MySQL 是否能正常连接
假设 Qt安装目录\5.9\mingw53_32\bin\ 下已加入了 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()<<"OK"; else qDebug()<<"False"; return a.exec(); }
•构建并运行项目,查看应用程序输出
如果输出 OK,那到此为止了,Qt 与 MySQL 连接正常;如果输出 False,不出意外是因为 libmysql.dll、libmysqld.dll 与 qsqlmysql.dll、qsqlmysqld.dll版本不匹配!需要对 qsqlmysql.dll、qsqlmysqld.dll 进行修改。
二、添加 MySQL 的libmysql.dll、libmysqld.dll
(注意:Qt msvc2015_64 可以使用32
位、64 位版本的 MySQL 文件,Qt mingw53_32 只能使用 32 位版本的MySQL 文件)
之前提到,如果应用只需要连接远程数据库,那么本地不需要安装 MySQL,而只需要用到 MySQL 提供的动态连接库 libmysql.dll 和 libmysqld.dll。那么如果不安装MySQL,怎么获取那两个动态链接库文件?可以这样做:
•从已安装了 MySQL 的机器上拷贝这两个文件。
•本地临时安装 MySQL,然后保留下需要的文件,卸载 MySQL。
安装 MySQL 可以去官网下载安装包,不过我不太喜欢这样做,因为现在 MySQL 的安装组件太多太杂,很多东西都是不必要。推荐去一些开源镜像站上下载对应版本,比如说 Tuna、USTC。临时安装 MySQL 之后先不急着卸载,后面编译 MySQL 驱动会用到。
三、重新编译 qsqlmysql.dll、qsqlmysqld.dll
编译 Qt 关于 MySQL 的驱动需要用到 Qt 的源码,获取 Qt 的源码可以使用 MaintenanceTool.exe 下载 Src,编译驱动用到的工程文件路径为 Qt安装目录\5.9\Src\qtbase\src\plugins\sqldrivers\mysql\ 。源码差不多有2G的大小,而编译驱动需要用到的工程文件大约几十M,要是存储空间和网速不给力,建议只下载
qtbase-opensource-src-5.9.0.zip,需要的工程在 qtbase-opensource-src-5.9.0\src\plugins\sqldrivers\mysql\ 。
用 Qt 打开上面提到的编译驱动用到的工程文件,在 mysql.pro 末尾加上这两句:
INCLUDEPATH += mysql安装目录\include
LIBS += -Lmysql安装目录\lib\ -llibmysql
构建并运行项目会在 C 盘下生成 plugins\sqldrivers 目录,里面包含 qsqlmysql.dll、qsqlmysqld.dll 两个文件,将它们复制一份覆盖原先的两个文件即可。再次进行 Qt 与 MySQL 的连接测试,成功了没有?
本文向大家介绍Windows环境下python环境安装使用图文教程,包括了Windows环境下python环境安装使用图文教程的使用技巧和注意事项,需要的朋友参考一下 Windows环境下python的安装与使用 一、python如何运行程序 首先说一下python解释器,它是一种让其他程序运行起来的程序。当你编写了一段python程序,python解释器将读取程序,并按照其中的命令执行,得出结果
在使用VisualStudio代码学习了AngularJs2官方英雄教程之后,我想在Windows10上使用WebStorm+Chrome进行代码和调试。 为此,我做了下面的事情; > 安装Chrome JetBrains IDE扩展 不管选项如何,断点都没有命中。 在WebStorm中,消息在一段时间后弹出。 在WebStorm中发生连接错误后,Chrome开发控制台显示大量消息; 管理员模式无
本文向大家介绍Windows下搭建Android开发环境,包括了Windows下搭建Android开发环境的使用技巧和注意事项,需要的朋友参考一下 工具/原料 JDK Eclipse ADT JDK的安装和Java环境变量的设置 1、JDK下载地址 JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.h
本文向大家介绍在Windows环境下使用MySQL:实现自动定时备份,包括了在Windows环境下使用MySQL:实现自动定时备份的使用技巧和注意事项,需要的朋友参考一下 一、编写备份脚本 这是一段很常见的windows批处理脚本文件,我来简单解释一下其中的关键部分: forfiles 用来对备份目录下的过期备份进行删除。“E:\mysql\MySQL BackUp”是备份文件所在的路径,可以自行
ubuntu上跑webStorm 的前台环境,windows上跑IDEA的后台环境。下面是webStorm的报错: 面对这种问题,可以直接点击报错提示的链接,打开后,对照括号中的指示:(ECONNRESET) 也就是两个端无法进行连接,于是我尝试两端互相ping,发现:windows -> ubuntu 是没问题的ubuntu -> windows 发现长时间没有反应网上有说windows防火墙的
问题内容: 我找到了很棒的教程,该教程解释了如何使用Angular CLI设置express.js,但是在本教程中,角度应用程序被编译到生产dist文件夹中:https : //scotch.io/tutorials/mean-app- with-angular- 2和角度cli 如何将express.js与Angular CLI集成在一起,但是我希望express.js与Angular应用程序的