超详细的Qt 配置MySQL数据库
( 一 )先查看你的mysql是否和qt的版本匹配
-
从Qt 5.12开始,Qt提供了对MySQL 8.0及更高版本的支持。如果您使用的是较早版本的Qt,则可能需要手动编译MySQL驱动程序或使用第三方MySQL驱动程序。
1 如何查看MYSQL位数
打开MySQL控制台
输入**show variables like ‘%version_%’ ;**即可
( 二 ) 编译MYSQL驱动
1. 双击mysql.pro文件QtCreator运行
2. 选择编译器后点击Configure Project
3. 编译报错,未定义的mysql
4. 解决方案, 指定mysql链接库
-
这里分几种情况,第一如果你的mysql安装的路径没有包含空格
-
**第二 你安装的mysql路径包含空格 **
$$quote(路径) , 将路径包裹起来,不出意外编译成功
-
第三 ,如果方式二失败了,别急,还有杀手锏,
-
编译运行,运行成功,会在你的Qt同目录下(plugins)生成驱动文件qsqlmysql.dll及qsqlmysqld.dll,当然这里是可以指定驱动文件生成的目录(一般没必要写),如果编译成功,但是没有在我们的qt同目录中没有生成我们想要的文件(有些朋友的电脑会怎样),不着急,他可能在下面的目录
-
将qsqlmysql.dll及qsqlmysqld.dll,拷贝到mingw73_64(位),的plugins/sqdrivers中
-
最后一步加载驱动,将mysql解压目录lib目录下的libmysql.dll拷贝至mingw73_64bin目录下:
**5 代码测试 **
#include "mainwindow.h" // *****注意****
#include<QSqlDatabase>
#include <QApplication>
#include<QMessageBox>
#include <QSqlError>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w; //*****替换一下*****
w.show();
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1"); //连接本地主机
db.setPort(3306); //端口号,默认的
db.setDatabaseName("game"); //数据库名
db.setUserName("root"); //用户
db.setPassword("ln123456789"); //密码
bool ok = db.open();
if (ok){
QMessageBox::information(0, "infor", "link success");
}
else {
QMessageBox::information(0, "infor", "link failed");
// qDebug()<<"error open database because"<<db.lastError().text();
}
QSqlError error;
error = db.lastError();
if(error.isValid())
{
switch(error.type())
{
case QSqlError::NoError:
qDebug() << "无错误";
break;
case QSqlError::ConnectionError:
qDebug() << error.text();
break;
case QSqlError::StatementError:
qDebug() << error.text();
break;
case QSqlError::TransactionError:
qDebug() << error.text();
break;
default:
qDebug() << error.text();
break;
}
}
return a.exec();
}
- 搞忘一点,在 .pro文件中添加 QT+=sql
- 休息一下,喝杯咖啡