【问题标题】:Open database connection to Qt/C++打开与 Qt/C++ 的数据库连接
【发布时间】:2019-09-16 11:58:21
【问题描述】:

我有 MySQL Server 8.0 (Workbunch),我正在尝试使用 Qt/C++ (QSqlDatabase) 打开一个数据库。但是db.open(),总是返回false。为什么?我用user: rootpass: mypass

Log from terminal:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL  
QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
db state:  false

paneldb.cpp

    #include "paneldb.h"
#include "ui_paneldb.h"

PanelDB::PanelDB(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::PanelDB)
{
    ui->setupUi(this);

    db.setHostName("localhost");
    db.setDatabaseName("testdb");
    db.setUserName("root");
    db.setPassword("mypass");

    bool ok = db.open();

    qDebug() << "db state: " << ok;
}

PanelDB::~PanelDB()
{
    delete ui;
}

paneldb.h

    #ifndef PANELDB_H
#define PANELDB_H

#include <QMainWindow>
#include <QSqlDatabase>
#include <QDebug>

namespace Ui {
class PanelDB;
}

class PanelDB : public QMainWindow
{
    Q_OBJECT

public:
    explicit PanelDB(QWidget *parent = nullptr);
    ~PanelDB();

private:
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    Ui::PanelDB *ui;
};

#endif // PANELDB_H

专业文件:

QT       += core gui
QT       += sql

MYSQL 日志:

mysql> SELECT CURRENT_USER();
+----------------+
| CURRENT_USER() |
+----------------+
|   root@localhost |
+----------------+

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
5 rows in set (0.00 sec)

如何使用 QT 连接我的数据库?

【问题讨论】:

  • QMYSQL 驱动程序未加载是可能的问题。通过查看 QSqlDatabase::lastError().text() 进行确认
  • 您应该从大多数驱动程序的源代码构建 Qt SQL 驱动程序... MySQL .. QODBC ..etc。不要依赖随附的安装驱动程序。

标签: c++ mysql database qt database-connection


【解决方案1】:

您必须确保 mysql 客户端 dll 在您的 PATH 中。如果你没有这个,那么你必须先在你的平台上安装它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 2020-08-15
    • 1970-01-01
    相关资源
    最近更新 更多