当前位置:   article > 正文

qt打开mysql数据库失败怎么办_Qt连接MySql驱动加载失败问题解决方法

qt adddatabase("qmysql" 打开失败

在使用Qt连接mysql数据库的时候,遇到过这样的报错,做一下记录和总结。

报错如下:

(1)QSqlDatabase: QMYSQL driver not loaded

(2)QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

Qt、Mysql编辑器版本背景:

Qt版本是5.13.2,编译器是MSVC2015_64,是x64位。

mysql版本是5.7.29-winx64,也是x64位。

问题解析:

Qt目录里缺失了和Mysql的连接插件qsqlmysql.dll。在这种情况下,单纯地将Mysql目录下的lib文件夹下的libmysql.dll复制到Qt的目录下的bin目录下是无用的。

解决方法:

1.先看看自己的Qt目录下有没有连接插件qsqlmysql.dll,文件夹位置:                        E:\Qt\Qt5.13.2\5.13.2\msvc2015_64\plugins\sqldrivers

27fe503949c2b896307afe95392f8ef8.png

2. 在没有连接插件qmysql.dll的情况下进入第二步,通过Qt里的src源码中的mysql源码来编译出qmysql.dll文件。先找到Qt目录源码里的mysql的源码,因为我在安装Qt是没有选择安装src源码,所以我重新从官网上下载了qt-everywhere-src-5.13.2.zip,内里是Qt源码文件。我的路径是:E:\Qt\qt-everywhere-src-5.13.2\qtbase\src\plugins\sqldrivers\mysql。

e2287917cb5141e90232afb00fd9320f.png

双击打开mysql.pro,进入Qt creator编译器界面,添加下面的三行代码:

INCLUDEPATH +=E:/DateBase/Mysql/mysql-5.7.29-winx64/include/    # 添加你自己的mysql安装目录下的include文件夹

LIBS += E:/DateBase/Mysql/mysql-5.7.29-winx64/lib/libmysql.lib # 添加你的mysql安装目录下的lib文件夹下的libmysql.lib文件

DESTDIR = ../mysql/mysqlDll    # 设置编译好的qmysql.dll放置的目录,不然你可能不知道会生成在哪。

7c601c225801a74cafd48db2163224b4.png

然后进行构建,就是界面左下角的锤子,这时会出现如下的两个错误:

Cannot read H:/qtsqldrivers-config.pri: No such file or directory

Project ERROR: Library 'mysql' is not defined.

第一个问题中没有这样的文件,但是可以在目录E:\Qt\qt-everywhere-src-5.13.2\qtbase\src\plugins\sqldrivers下找到configure.pri这个文件,那么我们就把原来需要qtsqldrivers-config.pri的地方注释掉,改成configure.pri。

打开qsqldriverbase.pri文件,将第四行注释掉,即#include($ $shadowed($ $PWD)/qtsqldrivers-config.pri),然后添加include(./configure.pri),保存,完成。

e227b13102d399a79cb3b299b370e636.png

473d55ed35b96e7012e688e1c7d1ac89.png

Library 'mysql' is not defined,这个问题好解决,在qt左侧栏中双击打开mysql.pro,将第六行注释掉,这样:#QMAKE_USE += mysql。这个办法需要格外感谢看过的一个大佬的教程,太秀了。

493a5d8c8b95d1ab754a59f9a0f5f71b.png

接下来重新构建,没有报错。再次找到之前指定的编译好的dll放置的路径,E:\Qt\qt-everywhere-src-5.13.2\qtbase\src\plu gins\sqldrivers\mysql\mysqlDll,果然生成了qsqlmysql.dll和qsqlmysqld.dll,这两个就是qt连接mysql数据库的桥梁了。

67b915f66d39d8b5705010a3c8d5cde5.png

最后,只需将这两个生成的dll,复制到qt文件夹下:E:\Qt\Qt5.13.2\5.13.2\msvc2015_64\plugins\sqldrivers。

2815d34f3a9e966e6e5cc2fa64f185ae.png

并且也要将自己的mysql安装目录下的lib文件夹下的libmysql.dll,复制到qt的编译器的bin目录下,这样Qt就可以连接Mysql了。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号