Linux Qt 加载 MySql “QMYSQL driver not loaded”

本文详细介绍了在Linux环境下使用Qt时遇到的MySQL驱动加载失败问题及其解决方案。包括检查和修复缺失的库文件,通过apt-get安装必要软件包,创建软链接以匹配库名,以及手动编译Qt的MySQL驱动等步骤。

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

Linux Qt 加载 MySql “QMYSQL driver not loaded”

查看是否存在MySQL的库
在Qt的安装目录下
~/ThreeDog/qt/5.7/gcc_64/plugins/sqldrivers/

如果有的话查看库是否可用,ldd
在这里插入图片描述这里可以看到系统缺这几个库

查看这几个库在系统中是否存在
如果不存在,安装对应的包以解决:

sudo apt-get install openssl
sudo apr-get install mysql-server mysql-client

如果存在只是名字不同,则创建软连接

sudo find / -name *libcrypto.so*
sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /lib/x86_64-linux-gnu/libcrypto.so.10
sudo find / -name *libssl.so*
sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /lib/x86_64-linux-gnu/libssl.so.10
sudo find / -name  *libmysqlclient*
sudo ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so.16

在这里插入图片描述
链接指定对后,ldd查看是否还有库以来有问题,解决的依赖库的问题就可以成功加载mysql驱动。

如果libmysql的库仍然有问题,需要手动编译Qt的MySQL驱动。

参考链接:
https://blog.youkuaiyun.com/qq_28851503/article/details/52422302
https://www.cnblogs.com/yongqiang/p/6121515.html

### 解决 QT6 中 QMYSQL 驱动未加载的问题 在 QT6 的开发环境中遇到 `QMYSQL driver not loaded` 错误时,通常是因为缺少必要的 MySQL 数据库驱动程序支持。以下是详细的解决方案: #### 1. 确认可用数据库驱动 通过调试信息可以确认当前系统中的可用数据库驱动列表为:`QSQLITE`, `QMYSQL`, `QMYSQL3`, `QPSQL`, 和 `QPSQL7`[^1]。如果 `QMYSQL` 不在此列,则表明该驱动尚未被正确安装。 #### 2. 下载预构建的 Qt SQL 插件 一种快速解决问题的方法是从第三方资源获取已经编译完成的 Qt SQL 驱动插件二进制文件。例如,在 GitHub 上有项目提供官方源代码编译后的 `qsqlmysql.dll` 文件供直接下载并集成到您的项目中[^3]。将此 DLL 放置于 Qt 安装目录下的适当位置(通常是 plugins/sqldrivers/ 路径下),即可尝试重新运行应用程序验证效果。 #### 3. 自行编译 MySQL 驱动模块 对于更高级别的定制需求或者当无法找到适合版本的现成二进制包时,可以选择自行编译所需的 MySQL 驱动组件。具体操作如下: - **安装依赖项**: 确保已安装 MySQL 开发工具链以及相应的头文件和库文件。 - **配置环境变量**: 设置好 PATH 变量以便指向 mysqld 库所在路径。 - **执行命令行指令**: ```bash cd %QT_SOURCE_DIR%/qtbase/src/plugins/sqldrivers/mysql qmake "INCLUDEPATH+=C:\path\to\mysql\include" "LIBS+=C:\path\to\mysql\lib\libmysql.lib" nmake ``` 上述过程完成后会生成新的动态链接库 (DLL),将其复制至前述提到的目标文件夹内替换旧版或缺失的部分。 #### 4. 检查 Python 运行时环境设置(如果有涉及) 虽然本案例主要围绕 C++ 编程框架展开讨论,但如果整个工作流还涉及到其他脚本语言比如 Python 来辅助管理流程的话,也需要留意其相关配置情况。例如某些特定场景可能需要用到 Anaconda 提供的数据科学计算能力来处理复杂任务[^4]。不过这一步骤仅作为补充说明存在,并不必然适用于所有情形之下。 综上所述,针对 QT6 平台上的 QMYSQL 驱动未能成功装载的情况提供了两种主流应对策略——利用外部提供的成品构件或是自主动手打造专属适配器;同时提醒开发者注意跨平台协作过程中可能出现的各种潜在干扰因素。 ```python import sys from PyQt6.QtWidgets import QApplication, QMainWindow from PyQt6.QtSql import QSqlDatabase, QSqlQuery def check_database_connection(): db = QSqlDatabase.addDatabase('QMYSQL') if 'QMYSQL' in QSqlDatabase.drivers(): print("MySQL Driver Loaded Successfully.") else: error_message = f"MySQL Driver Not Found! Available Drivers:{', '.join(QSqlDatabase.drivers())}" raise Exception(error_message) if __name__ == '__main__': app = QApplication(sys.argv) try: check_database_connection() except Exception as e: print(e) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值