qt6.5.2版本的mysql驱动编译以及有mysql驱动但是无法加载问题解决,写于2023.8.18日

注意,mysql驱动编译问题根据不同的版本很可能出现极其严重的问题导致本版本无法编译,请注意,还有sql路径请不要添加任何中文或者空格

Qt默认是不支持mysql驱动的,需要自己进行手动编译,我的是6.5.2,可以看到在这里

6.5.2\mingw_64\plugins\sqldrivers

这个文件夹下面是没有qsqlmysql.dll这个组件的

驱动编译问题首先需要源码也就是qt自带的源码,如果qt下没有这个Src文件夹

返回qt安装目录下,打开cmd窗口,将MaintenanceTool.exe拖入cmd窗口

如图

Powershell也可以,然后空一格,输入镜像网站

--mirror https://mirrors.tuna.tsinghua.edu.cn/qt 

mirror后面的部分不唯一,网上也能找到很多大学的镜像网站

然后回车,就可以打开qt页面了,点击下一步,选择添加或移除组件,然后下一步,勾选Archive

然后点击筛选,就可以显示更多版本了,找到自己的版本,然后勾选Sources

这里我已经安装过了,剩下的点击下一步安装就好了

安装好了之后,就可以有Src了,之后进入Src\qtbase\src\plugins\sqldrivers

打开.cmake.conf这个文件,选择使用记事本,可以看到本来应该是这样的

我们添加上这三行代码

SET(FEATURE_sql_mysql ON)

SET(MySQL_INCLUDE_DIR "x:/xxxx/include")

SET(MySQL_LIBRARY "x:/xxx/lib/libmysql.lib")

最后两行是你下载的mysql的安装路径,mysql的安装本处不再多说,例如我的安装在了E盘的Mysql下,就写成这样

SET(FEATURE_sql_mysql ON)

SET(MySQL_INCLUDE_DIR "E:/Mysql/include")

SET(MySQL_LIBRARY "E:/Mysql/lib/libmysql.lib")

然后打开qt,打开这个文件夹下的CMakeLists.txt

打开过后看左边,是不是这样的,如果整个名字都错了,不是QSQLiteDriverPlugins,而是sqldrivers之类的(据我所知qt6.2.3是sqldrivers这样的),那么建议更新版本到一个能够打开的版本,或者自行查阅资料进行解决

当然,也有可能名字是对的,但是出现了多一个文件夹例如psql(我一开始就是有psql),然后运行起来会有几百个报错,那么这个时候在.cmake.conf之前那个文件中,改成这样

SET(FEATURE_sql_mysql ON)

SET(FEATURE_sql_psql OFF)

SET(MySQL_INCLUDE_DIR "E:/Mysql/include")

SET(MySQL_LIBRARY "E:/Mysql/lib/libmysql.lib")

就可以关闭psql了,记得吧最后两行的替换成自己的mysql路径,之后选择realse进行编译,

 

当然有可能他会报一个错误,不需要理会

这个时候返回.cmake.conf的上级目录,可以看到生成的realse文件

进入然后点击plugins,点击sqldrivers,可以看到

这里我们复制粘贴qsqlmysql.dll和qsqlmysql.debug,把他放入开头提到的6.5.2\mingw_64\plugins\sqldrivers,这里6.5.2是我的qt版本,各位自行更改就好

然后打开你的mysql,进入lib文件夹,找到libmysql.dll

 把他放到你的qt的bin里面

这个时候就搞定了,mysql驱动就已经编译并且加载完毕了,如果有输出驱动的代码这个时候就能够输出驱动了,前提是你运行的版本要跟你刚刚修改的版本一样

但是这还没完,还有一个问题就是在连接mysql驱动的时候,依然会报错,显示mysql驱动没有加载,但是输出的可使用的驱动里面明明是有mysql的,这个问题是由于mysql版本高的时候会有一个保护机制,首先我们进入mysql的官网

选择Connector/C++

下载相应版本的zip,我的是8.1.0,也就是第二个,后面的Archives是历史版本,如果不知道怎么查看自己的mysql版本,请打开mysql输入密码后输入status查看

,下载完了之后进入

把里面除了文件夹的所有组件

复制粘贴到你的Debug或者Realse的生成文件下,这样就可以连接上数据库了

如果还报错之类的,可以删除已经构建的项目文件夹重新构建,我用的是minGW编译的,理论上来说MSVC也是一样的,这一点大家还请自行探索即可

好了就是这样,因为我下载的直接复制粘贴到了mysql文件夹下,所以lib64的路径会不一样,各位自行调整即可

这方面的问题本教程不可能完全提到,如果有不全的地方还请自行与其他教程或者帖子相结合,还请见谅

顺带一提,最后发布版本打包exe过后也需要把lib64的组件复制过去,本教程写于2023年8月18日,如果时间过去很久,那么教程就仅供参考了,还望海涵

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: qt5.14.2中的qsqlmysql.dll和qsqlmysqld.dll是用于连接MySQL数据库的动态链接库,其中qsqlmysql.dll是用于连接MySQL的32位库,而qsqlmysqld.dll是用于连接MySQL的64位库。 您可以在网上搜索这两个文件并下它们存储在您的电脑上,然后将它们添到您的QT项目中。需要注意的是,这两个文件必须与您的QT版本相匹配,否则将无法顺利运行。建议您在下之前查看一下您的QT版本并且只下相应版本的qsqlmysql.dll和qsqlmysqld.dll。 需要强调的是,因为这两个文件是第三方动态链接库,下并且使用它们有一定的风险,请确保您从可信的网站进行下并进行适当的安全检查。在下和使用过程中,如果遇到问题您可以尝试寻求开发社区或者相关技术支持的帮助。 总之,qsqlmysql.dll和qsqlmysqld.dll是连接MySQL数据库的关键文件,如果您需要在QT项目中连接MySQL数据库,就需要确保这两个文件正确下并配置好。 ### 回答2: 目前,Qt 5.14.2版本已经发布了,你可以从Qt官方网站上下安装包。在Qt 5.14.2中,QSqlMySQL.dll和QSqlMySQLd.dll是MySQL数据库驱动程序的动态链接库文件,用于进行MySQL数据库连接。 如果你需要下这两个库文件,可以通过以下步骤: 1. 打开一个网盘存储文件的网站,例如百度云或者360云盘等。 2. 在搜索框中输入“qsqlmysql.dll”或“qsqlmysqld.dll”,点击搜索按钮。 3. 在搜索结果中,选择一个可靠的下链接,并进行下。如果需要密码,请输入密码。 4. 下完成后,将这两个文件复制到你的Qt编译环境的bin目录下即可。 需要注意的是,下库文件是一个风险行为,可能会产生安全问题,建议你从官网或者可靠的第三方网站进行下。同时,下的库文件应该与你使用的Qt版本兼容,如果不兼容可能会导致编译错误或运行时错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值