TARGET = qsqlmysql HEADERS += $$PWD/qsql_mysql_p.h SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp # 下面那条注释掉 #QMAKE_USE += mysql OTHER_FILES += mysql.json PLUGIN_CLASS_NAME = QMYSQLDriverPlugin include(../qsqldriverbase.pri) #该路径是下载解压后的mysql的头文件路径 INCLUDEPATH +="C:\Qt\mysql-connector-c-6.1.3-winx64\include" #这是刚才下载解压后的MySQL的库文件路径 LIBS +="C:\Qt\mysql-connector-c-6.1.3-winx64\lib\libmysql.lib" #为了方便查找,不妨增加一条语句,该语句用来指明编译后的结果输出的位置 DESTDIR = ../mysql/lib/
#该路径是下载解压后的mysql的头文件路径INCLUDEPATH +="E:\mysql-8.0.17-winx64\mysql-8.0.17-winx64\include"#这是刚才下载解压后的MySQL的库文件路径LIBS +="E:\mysql-8.0.17-winx64\mysql-8.0.17-winx64\lib\libmysql.lib"#为了方便查找,不妨增加一条语句,该语句用来指明编译后的结果输出的位置DESTDIR = ../mysql/lib/#QMAKE_USE += mysql
Qt新安装了个5.12.8发现无法连接Mysql数据库,运行时提示没有Mysql驱动,
首先在程序中添加了代码查看支持的驱动 qDebug() << QSqlDatabase::drivers(),在应用程序输出框中会打印出所有支持的数据库驱动,我解决问题之后现在其中包括QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7等等这几种驱动,下面找不到驱动时就有两种情况了:
一、
⑴其中包括你要连接的数据库Mysql的驱动,在这种情况是是最简单的,你只需要安装一个mysql,mysql版本一定要和Qt运行版本一致,例如32位qt工程用32位的mysql文件,64位的qt工程用64位的mysql文件,否则错误无法解决,然后去mysql安装目录下搜索libmysql.dll;
⑵或者你不想安装mysql,需要自己找资源包括mysql的必要文件,文章底部有我的资源可以供你们下载,或者也可以自己找也可以,然后将压缩包解压之后,找到libmysql.dll;
⑶最后将libmysql.dll拷贝到Qt下的一个指定安装目录下,例如:D:\Qt\Qt5.12.8\mingw73_32\bin目录下即可解决这种情况下的找不到驱动失败情况,如果解决不了一定是mysql的libmysql.dll和qt的版本不对应
二、
⑴列举出支持的数据库之后发现没有mysql,这就有点麻烦了,首先需要安装Qt时将源文件Src安装到本地,因为我们要用到Src里边的工程文件,否则的话还是将Qt卸载重新安装吧,
⑵找到QT安装目录下的mysql工程文件,例如D:\Qt\Qt5.12.8\Src\qtbase\src\plugins\sqldrivers\mysql,在这个目录下会有mysql.pro文件,用qt打开mysql.pro工程文件加载到qt工程中
⑶修改mysql.pro工程文件,将QMAKE_USE+=mysql屏蔽或者删除掉,怎么屏蔽?在行首加#即可,
再添加头文件目录INCLUDEPATH += “mysql安装目录或者解压压缩包后的目录中的include目录”,
添加库库文件LIBS += “mysql安装目录或者解压压缩包后的目录中的lib下的libmysql.lib文件”,
为了方便找到生成的库文件,最后指定输出目录为当前工程目录DESTDIR=…/mysql/lib/
例如:
INCLUDEPATH += “D:\Program Files(x86)\Mysql\mysql-connector-c-6.1.3-win32\include”
LIBS += “D:\Program Files(x86)\Mysql\mysql-connector-c-6.1.3-win32\lib\libmysql.lib”
DESTDIR=…/mysql/lib/
⑷好,现在都添加完毕了,然后构建工程即可,但是构建时你会发现构建失败,会有报错提示,这个没关系,不用管,然后你会发现当前目录下多了一个lib文件夹,里边包含了工程构建出来的四个库文件:libqsqlmysql.a,libqsqlmysql.a,qsqlmysql.dll,qsqlmysqld.dll,
只需要将这两个dll文件拷贝到qt驱动目录(例如:D:\Qt\Qt5.12.8\mingw73_32\plugins\sqldrivers)下,你会发现所有支持的数据库驱动全在这里,
⑸之后情况就跟一相同了,找到libmysql.dll拷贝到D:\Qt\Qt5.12.8\mingw73_32\bin,就可以完美解决问题
解决问题 Qt + MySql:”QSqlDatabase: QMYSQL driver not loaded”
开发环境
Windows10 1803
Qt 5.11
MSVC 2017 (64bit)
问题描述
在使用 Qt 链接 MySql 数据库时,编写代码如下:
运行测试时,输出如下:
提示无法加载驱动。
解决方法
Step1. 下载 Connector/C 压缩包
进入 MySql Connector/C下载页,下载64位zip压缩包:
Step2. 提取压缩包中的动态链接库
提取下图中的 .dll 文件:
Step3. 复制动态链接库到 Qt 目录
定位到目录
C:\Qt\Qt5.11.0\5.11.0\msvc2017_64\bin
,将提取出来的 .dll 复制到此处:Step4. 重新运行代码 解决问题
如下图所示,问题解决:
发表评论