QT5.9连接MySQL5.7解决QSqlDatabase: QMYSQL driver not loaded问题

在使用qt连接mysql数据库时,总是出现QSqlDatabase: QMYSQL driver not loaded的问题。网上有很多解决办法,比较麻烦的方法是重新编译QT中mysql的驱动文件qsalmysql.dll,还有一种简单方法是把libmysql.dll复制到指定的目录(但是很多都没说清楚)。经过多番尝试最终找到一种最简单的解决办法解决该问题。

准备工作

下载qt-opensource-windows-x86-5.9.1.exe
下载mysql-installer-community-5.7.26.0.msi

安装

由于qt为32位版本,所以安装MySQL时,选择MySQL Server x86 以及 MySQL Connector/C x86,否则会出现QSqlDatabase: QMYSQL driver not loaded的问题。

配置

打开C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib将libmysql.dll和libmysql.lib两个文件复制到C:\Programs\Qt\Qt5.9.1\5.9.1\mingw53_32\bin目录下。

测试代码

#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlError>
#include <QtDebug>

void connect_mysql()
{
    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");                //连接数据库主机名
    db.setPort(3306);                                   //连接数据库端口号
    db.setDatabaseName("xxxxxx");           //连接数据库名
    db.setUserName("root");                       //数据库用户名
    db.setPassword("xxxxxx");                    //数据库密码
    db.open();
    if(!db.open())
    {
        qDebug()<<"不能连接"<<"connect to mysql error"<<db.lastError().text();
        return ;
    }
    else
    {
        qDebug()<<"连接成功"<<"connect to mysql OK";
    }
}


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    connect_mysql();
    return a.exec();
}

猜你喜欢

转载自www.cnblogs.com/linzijie1998/p/11096167.html