• 5720阅读
  • 2回复

[提问]关于Qt5.12.0连接MySQL的问题:QSqlDatabase: QMYSQL driver not loaded [复制链接]

上一主题 下一主题
离线jupipe
 

只看楼主 倒序阅读 楼主  发表于: 2019-02-07
最近打算用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有兼容上的问题,或者其他
下面该怎么办呢?
期待关注和您的意见!
离线jupipe

只看该作者 1楼 发表于: 2019-02-07
好吧,我重新安装了MySQL5.7,问题就解决了。

看来Qt5.12还用不了MySQL8.0,或者能用但我不知道。
离线莫--墨

只看该作者 2楼 发表于: 2019-03-22
楼主,你装5.7哪个版本就好了?我遇到和你一样的问题,一天了,在网上找了一天了,都解决不了,可以私下聊会?QQ:937665133,谢谢!
快速回复
限100 字节
 
上一个 下一个