天天看点

Qt连接MySQL的问题

错误信息提示

QSqlDatabase: QMYSQL driver not loaded //无法加载驱动
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
           

解决方式

补充注:1.MySQL的安装路径不能有空格,搞了我半天之前。2.在你项目的pro文件中加一行

QT +=sql

开始之前先说明一下我的工具版本,我用的是Qt 5.12.2、MySQL 8.0.21 64位版本。其中Qt安装时的勾选条目如下:

Qt连接MySQL的问题
Qt连接MySQL的问题
  1. 打开文件:
    Qt连接MySQL的问题
  2. Qt连接MySQL的问题
  3. Qt连接MySQL的问题
#键入以下代码,可直接复制
TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#QMAKE_USE += mysql

OTHER_FILES += mysql.json

win32:LIBS += -LD:/application/MySQL/lib/ -llibmysql #注意是你自己MySQL的路径
INCLUDEPATH += D:/application/MySQL/include #下同
DEPENDPATH += D:/application/MySQL/include

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
           
  1. 上面的三个路径就是你自己的MySQL中的bin和include
    Qt连接MySQL的问题
  2. Qt连接MySQL的问题
  3. Qt连接MySQL的问题
  4. Qt连接MySQL的问题
  5. Qt连接MySQL的问题
  6. Qt连接MySQL的问题
  7. 输入如下代码测试
#include <QApplication>
#include<QMessageBox>
#include<QSqlDatabase>
#include<QDebug>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    qDebug()<<"available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
       qDebug()<<driver;

    //打开MySQL
    QSqlDatabase data_base = QSqlDatabase::addDatabase("QMYSQL");
    data_base.setHostName("localhost");  //设置主机地址
    data_base.setPort(3306);  //设置端口
    data_base.setDatabaseName("test");  //设置数据库名称
    data_base.setUserName("root");  //设置用户名
    data_base.setPassword("123456");  //设置密码
    if(!data_base.open())
        qDebug()<<"failed to connect to mysql";
    else
       qDebug()<<"success";


    return a.exec();
}
           
Qt连接MySQL的问题

成功访问数据库!