MAC环境下QT连接MySQL数据库提示无法加载驱动(driver not loaded)问题解决

本文详细解析了在Mac系统中使用QT连接MySQL数据库时遇到的驱动加载失败问题,提供了解决方案,涉及libqsqlmysql.dylib及libmysqlclient.*.dylib等动态库的版本匹配和路径配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天尝试使用MAC上的QT连接mysql数据库,但是一直提示连接失败,lastError().text()显示原因是无法加载驱动
网上也有很多关于这个问题的解决方法,但是很多解决方案都是针对windows平台的,找到仅有的几篇mac os平台的可是针对都是旧版本的QT,很多讲的云里雾里解决不了问题。导致我前前后后捣鼓了两个多小时。

找了很多资料,好歹对这个问题也有了一定理解,所以整理一篇博客,希望帮助到遇到相同问题的人。

首先,mac系统上QT连接mysql数据库需要调用一个名libqsqlmysql.dylib的动态库,这个插件可能不同的电脑会有不同的路径,可以参考我的:> /Users/XXX/Qt5.11.3/5.11.3/clang_64/plugins/sqldrivers/libqsqlmysql.dylib(其中XXX是我的Users用户名)
如果找不到的话可以直接在QT根目录种进行查找

运行这个动态库又会调用到许多其他mysql的动态库,而QT的这个问题一般都是出在这几个被调用的其他动态库上(找不到这几个动态库或者动态库不对印)

所以我们可以先查看一下libqsqlmysql.dylib指向哪一些库
终端中输入
$ otool -L /Users/XXX/Qt5.11.3/5.11.3/clang_64/plugins/sqldrivers/libqsqlmysql.dylib
结果如图所示:
在这里插入图片描述
我们发现输出结果中有一行奇怪的路径(图中选中部分),实际上我们/usr/local/mysql/lib路径下的libmysqlclient.*.dylib文件不一定是叫做libmysqlclient.20.dylib,(中间的那个版本号不一定是20)但是QT固定成了20,所以编译的时候找不到这个动态库,从而连接失败。

解决方法:按照路径改文件,把libmysqlclient.*.dylib文件改为路径上对印的文件名(不一定是libmysqlclient.20.dylib,可能是其他版本,按照终端输出的信息来)。

如果在/usr/local/mysql/lib下找不到libmysqlclient文件,可以上网下载或者搜索mysql目录。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值