QT连接Mysql数据库是报 QMYSQL driver not loaded QSqlDatabase: available drivers: QMYSQL

本文指导如何解决Qt应用在尝试连接MySQL/MariaDB时遇到的QSqlDatabase错误,包括库和驱动的添加方法,推荐下载链接及步骤。

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

QT连接Mysql/ MariaDB数据库是报错

 QSqlDatabase: QMYSQL driver not loaded
 QSqlDatabase: available drivers: QMYSQL
  1. 主要原因是缺少库或驱动,只要添加相应的库和驱动即可解决。
  2. 驱动/库下载地址:qt_mysql_driver
  3. 或者下载软件,一键添加,软件地址:https://iheng.lanzoum.com/igch40e9a4ud

添加的方式:

将驱动添加到相应的文件夹中

在这里插入图片描述

将库添加到相应的文件夹中

在这里插入图片描述

其他构建套件相同,添加相应的库和驱动即可

利用软件直接添加驱动(目前只支持6.4.0与5.15.5)

选择已经安装了的qt文件夹即可,下方就会显示可以直接添加的套件了,然后点击添加驱动即可。
https://i.imgur.com/4MItG4s.png

### Linux 下 QMYSQL 驱动未加载解决方案 在 Linux 系统中遇到 `QSqlDatabase: QMYSQL driver not loaded` 的问题时,通常是因为 Qt 未能找到 MySQL 数据库驱动程序。以下是解决问题的具体方法: #### 方法一:安装必要的依赖项 确保系统已安装 MySQL 客户端开发库以及对应的 Qt SQL 插件。对于基于 Debian/Ubuntu 的发行版,可以运行以下命令来安装所需的软件包: ```bash sudo apt-get update sudo apt-get install libmysqlclient-dev qtbase5-private-dev libqt5sql5-mysql ``` 这些命令会安装 MySQL 开发库和 Qt 对应的 MySQL 支持插件[^4]。 #### 方法二:手动构建 QMYSQL 插件 如果通过上述方式无法解决问题,则可能需要手动编译并生成 QMYSQL 插件。按照以下步骤操作: 1. **获取源码** 找到 Qt 源码目录中的 `src/plugins/sqldrivers/mysql` 文件夹。如果没有本地源码,可以从官方下载对应版本的 Qt 源码压缩包。 2. **配置环境变量** 设置正确的路径以便访问 MySQL 库文件。例如,在终端执行以下命令: ```bash export MYSQL_CONFIG=/usr/bin/mysql_config ``` 3. **编译插件** 进入 `mysql` 插件目录后,依次执行以下命令完成编译过程: ```bash qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-lmysqlclient_r" make sudo make install ``` 编译完成后,生成的动态链接库会被放置于系统的默认插件路径下(通常是 `/usr/lib/x86_64-linux-gnu/qt5/plugins/sqldrivers/` 或其他指定位置)[^3]。 #### 方法三:验证可用驱动列表 重启应用程序之前,可以通过调用如下代码确认当前支持哪些数据库驱动: ```cpp #include <QCoreApplication> #include <QSqlDatabase> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); qDebug() << QSqlDatabase::drivers(); // 输出所有可用驱动 return a.exec(); } ``` 正常情况下应该看到包含 `"QMYSQL"` 的输出结果[^1]。 --- ### 总结 以上介绍了三种主要途径用于处理 Linux 平台上的 `QSqlDatabase: QMYSQL driver not loaded` 错误情况。优先尝试自动化的包管理工具解决;当此法失效后再考虑自行搭建所需组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值