Qt 连接MySQL

工程文件

QT       += sql

举例

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setDatabaseName("test");
db.setPort(3306);
db.setUserName("root");
db.setPassword("123456");
if(db.open())
    qDebug() << "Open successfully!";
else
    qDebug() << "Open failed!";

qDebug() << QSqlDatabase::drivers();

出现如下错误

QSqlDatabase: QMYSQL driver not loaded

解决办法:
将MySQL安装目录下libmysql.dll拷贝到工程目录中

Qt5.14.2版本
Qt5.14.2安装完,默认没有mysql的支持库。需要自己手动去编译源码
源码位置C:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql
MySQL 8位置C:\Program Files\MySQL\MySQL Server 8.0
mysql.pro修改

TARGET = qsqlmysql

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

#QMAKE_USE += mysql

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"
DEPENDPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"
LIBS += "C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib"

编译完的qsqlmysql.dll、qsqlmysqld.dll拷贝到C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\plugins\sqldrivers目录下

拷贝完后效果

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

MySQL 8的libmysql.dll拷贝到源码工程目录
数据库不再报错

注意:
Qt选择msvc2017_64编译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值