关于Qt5.12.0连接MySQL的问题:QSqlDatabase: QMYSQL driver not loaded
最近打算用Qt做个传感器压力测试程序,测试结果保存到MySQL中。开发环境:1. Qt版本 Qt Creator 4.8.0 Based on Qt 5.12.0 (MSVC 2015, 32 bit) ......2. Qt C++编译器和生成可执行文件的位数 Qt\Qt5.12.0\5.12.0\mingw73_64所以,我认为编译器是64位的。并且用notepad++打开编译后的可执行文件,发现有“This program cannot be run in DOS mode.”,所以,可执行文件是64位的。3. MySQL的版本和位数 第一种方式 D:\MySQL\MySQLServer8.0\bin> .\mysql.exe -V D:\MySQL\MySQLServer8.0\bin\mysql.exe Ver 8.0.14 for Win64 on x86_64 (MySQL Community Server - GPL) 第二种方式 mysql> show variables like '%version_%'; ...... 'version_compile_machine', 'x86_64' 'version_compile_os', 'Win64' ......所以MySQL也是64位的。问题描述: 当运行QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");时,运行程序输出显示: ("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7") QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 实际上,单步调试到这一行时,完整信息如下: `C:\Program Files (x86)\sogoupinyin\9.3.0.2927\Resource.dll': Shared library architecture i386 is not compatible with target architecture i386:x86-64. `C:\Program Files (x86)\sogoupinyin\9.3.0.2927\Resource.dll': Shared library architecture i386 is not compatible with target architecture i386:x86-64. ("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7") QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 不太懂为什么和搜狗拼音有什么关系。尝试过的办法: 1. 网上的办法,基本上是将MySQL的libmysql.dll文件拷贝到编译器的bin目录下,我试过, 即将 MySQL\MySQLServer8.0\lib\libmysql.dll拷贝到Qt\Qt5.12.0\5.12.0\mingw73_64\bin\目录中, 问题依然存在。 2. 我又尝试安装mariadb-10.3.12-win32和mariadb-10.3.12-win64,分别将libmariadb.dll拷贝到 Qt\Qt5.12.0\5.12.0\mingw73_64\bin\下,并改名为libmysql.dll,还是不行。请问大家,是不是Qt5.12与MySQL8.0有兼容上的问题,或者其他?下面该怎么办呢?期待关注和您的意见!