Typical symptom: QMYSQL driver not loaded. Solution: get pre-built Qt SQL driver plug-in required to establish a connection to MySQL / MariaDB using Qt. Download qsqlmysql.dll binaries built from official Qt source code
使用 Qt 连接 MySQL / MariaDB 时,若缺少必要插件,典型的运行时错误如下:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QMYSQL
由于 Qt 公司无法提供 qsqlmysql.dll / libqsqlmysql.so 的二进制文件,您需要自行编译,这可能会比较麻烦。这里提供了针对不同 Qt 版本的编译版本。您可以从 发布页面 获取适用于 Windows 的预编译 qsqlmysql.dll 或适用于 Linux 的 libqsqlmysql.so。请务必确保您的 Qt 版本和编译器(Microsoft Visual C++/MSVC、MinGW)完全匹配。例如,如果您使用的是 Qt 6.4.2,则不能使用 6.4.1 或 6.4.3 版本的驱动
这对您有帮助吗?如果您愿意,可以通过 此处 对我进行捐赠支持。非常感谢所有已经捐赠的人
最新 Qt6 版本:Qt 6.11.1 下载请点击 这里Android 用户请参考第三方仓库 https://github.com/sayyyed/qt_android_mysql_driver/releases/tag/qt_mysql_driver_for_android
部署
- 将 qsqlmysql.dll(发布版本)/ MSVC:qsqlmysqld.dll,MinGW:qsqlmysql.dll + qsqlmysql.debug(调试版本)复制到应用程序目录(或开发时的构建目录)的“sqldrivers”子目录中
- 将 zip 文件中的 libmysql.dll(MySQL 库)以及 libcrypto/libssl OpenSSL 库(或分别从 https://dev.mysql.com 和 https://kb.firedaemon.com/support/solutions/articles/4000121705 下载)复制到应用程序目录(或更一般地,复制到 PATH 环境变量中注册的任何目录)
从源代码构建(Qt6/CMake)
Windows
对于 MSVC:先决条件:
- 安装 MSVC 编译器(可从 Visual Studio 2022 安装程序 中获取 C++ 桌面工具包)
- 通过 Maintenance Tool 安装 Qt(包括源代码、CMake 和 Ninja)
- 安装 MySQL 库,https://dev.mysql.com/downloads/file/?id=543699
set PATH=%PATH%;C:\Qt\Tools\CMake_64\bin;C:\Qt\Tools\Ninja
C:
cd C:\Qt\6.9.2\Src\qtbase\src\plugins\sqldrivers
call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
call C:\Qt\6.9.2\msvc2022_64\bin\qt-cmake.bat -G "Ninja Multi-Config" . -DMySQL_INCLUDE_DIR="C:\Users\Administrator\Documents\qt_creator\lib\libmysql\include" -DMySQL_LIBRARY="C:\Users\Administrator\Documents\qt_creator\lib\libmysql\lib\libmysql.lib" -DCMAKE_INSTALL_PREFIX="C:\Qt\6.9.2\msvc2022_64" -DCMAKE_CONFIGURATION_TYPES=Release;Debug -DQT_GENERATE_SBOM=OFF
ninja
ninja install
pause
适用于 MinGW:
前提条件:
- 通过 Maintenance Tool 安装 Qt(含源代码)、CMake 和 MinGW
- 安装 MySQL 库,https://dev.mysql.com/downloads/file/?id=543699
set PATH=%PATH%;C:\Qt\Tools\CMake_64\bin;C:\Qt\Tools\mingw1310_64\bin;C:\Qt\Tools\Ninja
C:
cd C:\Qt\6.9.2\Src\qtbase\src\plugins\sqldrivers
call C:\Qt\6.9.2\mingw_64\bin\qt-cmake.bat -G "Ninja Multi-Config" . -DMySQL_INCLUDE_DIR="C:\Users\Administrator\Documents\qt_creator\lib\libmysql\include" -DMySQL_LIBRARY="C:\Users\Administrator\Documents\qt_creator\lib\libmysql\lib\libmysql.lib" -DCMAKE_INSTALL_PREFIX="C:\Qt\6.9.2\mingw_64" -DCMAKE_C_COMPILER="gcc.exe" -DCMAKE_CXX_COMPILER="g++.exe" -DCMAKE_CONFIGURATION_TYPES=Release;Debug -DQT_GENERATE_SBOM=OFF
ninja
ninja install
pause
Introduction
Typical symptom: QMYSQL driver not loaded. Solution: get pre-built Qt SQL driver plug-in required to establish a connection to MySQL / MariaDB using Qt. Download qsqlmysql.dll binaries built from official Qt source code
Customize your domain