解决 QMYSQL driver not loaded 问题 QT5.12.2 连接数据库MySQL Server8.0

最近一直用QT、MYSQL、VS2017构建项目,项目使用了MinGW 64bit编译器和MSVC2017_64编译器,都出现驱动无法加载。

QMYSQL driver not loaded

困扰了我很久,在网上找了很多方法。

方法一:

拷贝mysql安装目录下的libmysql.dll,libmysql.lib到Qt的MinGW 64bit编译器或MSVC2017_64编译器的bin目录

方法二:重新编译Qt自带的mysql驱动qsqlmysql.dll,qsqlmysqld.dll

找到mysql.pro文件。

编译mysql.pro文件,加上两行:

INCLUDEPATH +=D:\mysql\include

LIBS +=D:\mysql\lib\libmysql.lib

 


编译遇到各种问题也没能解决.
最后采用方法三解决了问题。

MinGW 64bit编译器和MSVC2017 64bit编译器成功连接到MySQL.
具体步骤:
目标路径:D:\Qt\Qt5.12.2\5.12.2\mingw73_64\bin
1.打开路径: C:\Program Files\MySQL\M

<think> 我们正在解决Qt连接MySQL时出现“QMYSQL driver not loaded”错误的问题。根据引用内容,这个问题通常是由于Qt没有正确加载MySQL驱动造成的。下面将结合引用信息常规解决方法,提供详细的解决步骤。 关键点: 1. 确保已编译并安装了QtMySQL驱动插件(libqsqlmysql.so或.dll)。 2. 确保MySQL的客户端库(libmysqlclient.so或.dll)可用,并且与Qt驱动插件的架构(32/64)一致。 3. 确保Qt在运行时能够找到驱动插件MySQL客户端库。 根据引用[1][2]:出现该错误是因为Qt没有正确加载MySQL驱动。引用[3][4][5]则提供了一些具体的解决步骤,特别是关于驱动文件的放置依赖库的版本匹配。 以下是针对Linux系统的解决方法(Windows方法类似,但重点在Linux): </think> ### 解决Qt连接MySQL时出现"QMYSQL driver not loaded"错误的方法 该错误通常由驱动缺失或配置问题导致,以下是系统化的解决方案: #### 方法1:检查驱动可用性 ```cpp #include <QDebug> #include <QSqlDatabase> qDebug() << "可用驱动:" << QSqlDatabase::drivers(); ``` 若输出不含`QMYSQL`,说明驱动未安装[^1][^2]。 #### 方法2:编译安装MySQL驱动(Linux) 1. **安装依赖**: ```bash # Ubuntu/Debian sudo apt install libmysqlclient-dev qtbase5-dev ``` 2. **编译驱动**: ```bash cd /path/to/Qt/Src/qtbase/src/plugins/sqldrivers qmake -- MYSQL_PREFIX=/usr/include/mysql \ "INCLUDEPATH+=/usr/include/mysql" \ "LIBS+=-L/usr/lib/x86_64-linux-gnu -lmysqlclient" make && sudo make install ``` 编译后的`libqsqlmysql.so`将输出到`Qt/plugins/sqldrivers/`目录[^1][^3]。 #### 方法3:配置运行时路径(关键步骤) 1. **添加插件路径**: ```cpp QCoreApplication::addLibraryPath("/path/to/qt/plugins"); ``` 2. **检查依赖关系**: ```bash ldd /path/to/libqsqlmysql.so | grep mysql ``` 确保输出包含`libmysqlclient.so`的有效路径[^2][^4]。 #### 方法4:Windows系统特殊处理 1.MySQL的`libmysql.dll`复制到: - Qt的`bin`目录(如`C:\Qt\5.15.2\mingw81_64\bin`) - 应用程序输出目录 2. 确认Qt插件目录(如`plugins\sqldrivers`)包含`qsqlmysql.dll`[^4][^5]。 #### 方法5:架构一致性检查 1. 确认三者一致: - Qt编译架构(32/64) - MySQL客户端库架构 - 应用程序目标架构 使用`file`命令验证: ```bash file libqsqlmysql.so # 应显示ELF 64-bit file /usr/lib/libmysqlclient.so # 需匹配 ``` #### 错误排查流程图 ```mermaid graph TD A[QMYSQL driver not loaded] --> B{驱动是否在列表} B --> |否| C[重新编译驱动] B --> |是| D{依赖库是否完整} D --> |否| E[配置LD_LIBRARY_PATH] D --> |是| F{插件路径是否正确} F --> |否| G[addLibraryPath指定路径] F --> |是| H[检查架构一致性] ``` > **典型错误解决**:若出现`undefined symbol: mysql_init`错误,通常因MySQL头文件版本与库不匹配,需重新安装`libmysqlclient-dev`并清理Qt驱动编译缓存[^3][^4]。 --- ###
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值