错误信息提示
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安装时的勾选条目如下:
- 打开文件:
#键入以下代码,可直接复制
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)
- 上面的三个路径就是你自己的MySQL中的bin和include
- 输入如下代码测试
#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();
}
成功访问数据库!