这个过程中遇到了很多问题,今天终于连接上了,写个博客记录一下全过程。
Qt连接MySQL数据库步骤:
一、在官网上下载并安装MySQL。
注意Qt和MySQL位数要一致,比如都是32位或者都是64位。
二、将你的MySQL的安装目录的lib文件夹下的libmysql.dll拷贝到你的Qt安装目录下的bin目录下。
具体步骤可参考链接:Qt报错“QSqlDatabase: QMYSQL driver not loaded“的解决方案
三、新建一个项目:
四、在mainwindow的构造函数里写连接代码。
代码如下,注意包含头文件:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QSqlDatabase>
#include <QSqlError>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 添加MySql数据库
QSqlDatabase test_database=QSqlDatabase::addDatabase("QMYSQL");
// 连接数据库
test_database.setHostName("localhost"); // 数据库服务器IP,数据库支持远程连接,这里localhost是本地数据库
test_database.setUserName("root"); // 设置数据库用户名
test_database.setPassword("你自己设置的密码"); // 设置密码
test_database.setDatabaseName("你自己设置的数据库名"); // 设置数据库名,使用哪个数据库,数据库要本来就存在
test_database.open();
if(test_database.open())
{
qDebug()<<"open database success";
}
else
{
qDebug()<<test_database.lastError().text();
QMessageBox::warning(this,"错误","error open database because : "+test_database.lastError().text());
}
}
五、在.pro文件里添加如下代码:
QT += sql
QT += core gui sql
一般来说就可以使用数据库了
如何在Qt中用代码新建一个数据库呢?见Qt+MySQL:在Qt中用代码新建数据库
如果运行报错,解决方案:
①报错: QSqlDatabase: QMYSQL driver not loaded
确保你的Qt位数和MySQL位数一致。
我的Qt位数和MySQL位数不匹配 ,我安装的32位Qt和64位MySQL,然后:
- 1、重装了32位的MySQL,
- 2、将MySQL\MySQL Server 5.7\lib下的libmysql.dll拷贝到F:\QT\5.9.7\mingw53_32\bin(安装目录)下。
- 3、再照着B站的视频配置了环境变量Mysql |三十分钟教你Mysql的安装与jdbc的配置
②报错:“Access denied for user ‘100574’@‘localhost’ (using password: YES) QMYSQL: Unable to connect”
这个错误原因是:
- 我刚开始用户名写的不是“root”,写的别的。
- 数据库名也写了一个MySQL里本来不存在(我没去创建过)的数据库,要连接的数据库不是说软件运行得时候才去创建的,是原本你就建好的。
把这些都改正了,就连接成功了。