1.安装MYSQL8.0
可参考https://blog.csdn.net/zhouzezhou/article/details/52446608
安装时注意若不选Development Components 将无法生产include文件夹和相关的lib库。
2.编译mysql驱动
Qt5.13.2 安装时选上src,因为要自已编译mysql plugins
用QtCreate 打开 C:\Qt\Qt5.13.2\5.13.2\Src\qtbase\src\plugins\sqldrivers\mysql\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"
LIBS += "C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib"
之后编译,编译成功后会在C盘(QT根目录盘符)生成 C:\plugins\sqldrivers 和 C:\mkspecs目录,将C:\plugins\sqldrivers目录下的的libqsqlmysql.a libqsqlmysqld.a qsqlmysql.dll qsqlmysqld.dll文件复制到 C:\Qt\Qt5.13.1\5.13.1\mingw73_64\plugins\sqldrivers (Qt安装时我选的编译工具为mingw)
将C:\mkspecs目录下的文件复制到C:\Qt\Qt5.13.1\5.13.1\mingw73_64\mkspecs
3.QT 添加代码:.pro文件中添加QT += sql 注意项目为mingw_64 编译,因为mysql8.0也是64位。此步骤可先执行,没安装mysql驱动不显示QMYSQL。
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); //数据库对象
db.setHostName("127.0.0.1"); //数据库服务器IP
db.setUserName("root"); //数据库用户名
db.setPassword("123456"); //数据库密码
// db.setDatabaseName("info"); //使用哪个数据库
qDebug()<<"QSR::"<<QSqlDatabase::drivers();
if( !db.open() ){ //数据库打开失败
QMessageBox::warning(this,"错误",db.lastError().text());
// db.lastError();
return;
}else
{
qDebug()<<"successful";
}
安装成功提示如下:
11:02:27: Starting D:\QtProject\build-untitled2-Desktop_Qt_5_13_2_MinGW_64_bit-Debug\debug\untitled2.exe ...
QSR:: ("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
successful
参考:https://blog.csdn.net/mxcai2005/article/details/104008623