qt 6.2.4连接mysql 5.7
记录使用VS2019编写 qt连接数据库时遇见的问题,困扰了我一天才将qt连接MySQL连接起来。
qt连接MySQL步骤
VS配置sql
VS第一步要导入sql模块,否则无法使用连接MySQL的库。
连接数据库
// 连接数据库使用到的类
#include <QtSql/QSqlDatabase>
// 初始化读取配置文件
QSettings* configIni = new QSettings("mysql.ini", QSettings::IniFormat);
//初始化数据库
db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName(configIni->value("conn/ip").toString());
db.setPort(configIni->value("conn/port").toInt());
db.setUserName(configIni->value("conn/username").toString());
db.setPassword(configIni->value("conn/password").toString());
db.setDatabaseName(configIni->value("conn/database").toString());
if (!db.open())
{
qDebug() << "mysql init failed!";
}
连接方式大同小异,而且简单,所以大家网上找一找可以找到很多。
导入驱动
按照这个连接方式直接连接并不能成功,而是会报错没有驱动,这个时候需要去编译qt源码,获取到需要的驱动文件。
这个也是困扰了我一天的问题。
首先找到qt的源码目录,如果安装qt的同学没有安装源码的话,可以重新卸载安装或者去直接下载源码。
qt源码目录:D:\qt6.2.4\6.2.4\Src\qtbase\src\plugins\sqldrivers
我在网上查找其他人编译源码的记录都会有 mysql.pro文件,直接用qtcreator打开就可以编译,但是我qt 6.2.4版本没有这个文件,只有cmake文件,所以我用 cmake编译。
选择对应的文件夹之后,点击 Configure,
选择对应的VS版本,点击finish,然后等待编译,之后会出现爆红,不要急。
再等待编译
再等待之后就编译好了。
编译好了之后,cmake会在最开始创建的build文件下生成这些文件。
在编译时可能会报错,命令行 error D8016: “/O2”和“/RTC1”命令行选项不兼容 。
到此就差不多大功告成,可以全局生成需要的驱动文件了。
编译生成的驱动文件在 D:\qt6.2.4\6.2.4\Src\qtbase\src\plugins\sqldrivers\build\plugins\sqldrivers
要就是刚才的build目录下,前面的目录是我的目录,大家不要也对应上了。
再讲这两个文件复制在 D:\qt6.2.4\6.2.4\Src\qtbase\src\plugins\sqldrivers qt的插件目录下,即可大功告成。
之后连接数据库就可以成功了,至于增删改查语句我相信大家可以的。
你知道的越多,你不知道的越多,我们下期见。