前言
教程参考:
http://t.csdnimg.cn/wKAk3
Qt6 是没有mysql驱动是要自己安装的,而且在 Qt6 是没有.pro文件,只能用cmake进行编译,特别的坑。
我也是被坑惨了,还去傻乎乎地找.por文件,整了半天。
必看
这个教程是针对Qt6的,如果用的是Qt5,则不适用!
在连接前要先安装Mysql,可以参考
http://t.csdnimg.cn/wMQku
正文
下载驱动
- 找到对应Qt版本的驱动,下载解压
https://github.com/thecodemonkey86/qt_mysql_driver/releases - 将libcrypto-1_1-x64.dll,libmysql.dll,libssl-1_1-x64.dll这3个文件复制到D:\Qt\6.4.2\mingw_64\bin文件夹中
- 再将解压缩后中的sqldrivers的两个mysql驱动文件复制到D:\Qt\6.4.2\mingw_64\plugins\sqldrivers中
调整代码
在CMakelists.txt 文件中
- 找到
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
替换为find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Sql)
- 在
target_link_libraries(filename PRIVATE Qt$ {QT_VERSION_MAJOR}::Widgets)
后面添加一行
target_link_libraries(filename PRIVATE Qt${QT_VERSION_MAJOR}::Sql)
里面的 filename 就是文件名,要一致
连接 Mysql 数据库
检测 Mysql 驱动
//输出可用数据库
qDebug()<<"available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug()<<driver;
如果输出中含有MySQL,那么恭喜你说明你的qt有MySQL驱动了,可以进行下一步。
连接
!!!注意是连接数据库,要保证已经创建过该数据库才能链接。
创建数据库的操作 在安装链接中也有(用的图形化界面),也可以参考这个:
http://t.csdnimg.cn/GyNr9
在自己工程的cpp文件中加入
#include<QSqlDatabase>
#include<QDebug>
void MainWindow::on_pushButton_clicked()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1"); //连接本地主机
db.setPort(3306);
db.setDatabaseName("db_name"); //Mysql 创建的数据库名称
db.setUserName("root");
db.setPassword("123456"); //安装 Mysql 设置的密码
bool ok = db.open();
if (ok){
qDebug() << "link success";
}
else {
qDebug() << "link failed";
}
}
测试输出link success,连接成功。
直接创建数据库使用
//创建数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
//设置数据库名字
db.setDatabaseName("login.db");
//打开数据库
if(db.open())
{
qDebug()<<"打开数据库成功"<<endl;
}else
{
qDebug()<<"打开数据库失败"<<endl;
}
成功后会在目录下生成.db文件
标签:Qt6,Qt,数据库,MySql,db,Mysql,连接 From: https://www.cnblogs.com/AndyYX/p/18144477