QSqlDatabase:QMYSQL驱动程序未加载Ubuntu 19.04和Qt5.12

时间:2019-10-16 23:59:58

标签: mysql c++11 qsqldatabase ubuntu-19.04 qsqlquerymodel

我正在使用Ubuntu 19.04Qt5.12,并且试图编写一个连接到SQL Server数据库的小型GUI,但是无论我尝试什么,我都会不断遇到以下错误:

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7

我已经对此主题进行了很多研究,从this source看来,具体到libqsqlmysql.so似乎是一个图书馆问题,但显然已经安装了。此外,同一则帖子还建议安装以下库libmysqlclient_r。这是我没有的最后一个,但是在寻找解决方案后,我发现this post提出了以以下方式创建符号链接的建议:

sudo ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so

但这也没有效果。

在下面的图片中,我可以确认确认安装了以下库:1)libqsqlmysql.so 2)libmysqlclient.so和3)我使用帖子I创建到libmysqlclient_r的符号链接上面提到过。

mysql

如果有用,以下是我的.pro文件:

QT  += core gui
QT  += sql

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = GeneralDBModuleEntry
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
CONFIG += c++11
QMAKE_CXXFLAGS += -std=gnu++11

SOURCES += \
        main.cpp \
        mainwindow.cpp
HEADERS += \
        mainwindow.h
FORMS += \
        mainwindow.ui

INCLUDEPATH+=/usr/include/mysql
LIBS += -L/home/emanuele/Qt5.11.2/5.11.2/gcc_64/plugins/sqldrivers

还有我正在使用的一小段代码:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    model = new QSqlQueryModel;
    connectToSql();
}

void MainWindow::connectToSql()
{
    db = QSqlDatabase::addDatabase("QMYSQL", "myDbTest");
    db.setUserName("root");
    db.setDatabaseName("TestDB");
    db.setPassword("mypassword");
    db.setHostName("localhost");
    db.setPort(3306);
    if(db.open())
    {
        std::cout<<"Success Db is open"<<std::endl;
    }
    else
    {
        QMessageBox::critical(this, "Error", model->lastError().text());
    }
}

MainWindow::~MainWindow()
{
    delete ui;
    delete model;
    delete qry;
}

如果我缺少某些东西,请指出正确的方向来解决此问题。

0 个答案:

没有答案