一、安装mysql
下载mysql地址:MySQL :: Download MySQL Installer
压缩包下载地址:MySQL :: Download MySQL Community Server
1.1解压下载好的压缩包文件
1.2环境变量添加mysql安装的bin文件目录的路径
1.3打开文件夹,创建一个新的文件my.ini空白文件
my.ini文件内容为:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir = D:\\mysql-8.4.0-winx64
# 设置mysql数据库的数据的存放目录
datadir = D:\\mysql-8.4.0-winx64\\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 创建模式
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
1.4通过命令行进入mysql下的bin文件夹
输入:
mysqld --initialize --console
出现root和密码
1.5安装mysql命令
mysqld --install
如果出现
用sc删除mysql,之后再执行mysqld --install
sc delete mysql
1.6启动mysql
net start mysql
1.7登入mysql
mysql -u root -p
出现以下界面说明登入成功
1.8修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
修改成功后
exit;(退出mysql)
二、QT使用mysql
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
.h
#include <QMainWindow>
#include<QSqlDatabase>
#include<QSqlQuery>
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
QSqlDatabase dbconn; //连接数据库
QSqlQuery query; //查询操作
};
#endif // MAINWINDOW_H
.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
if(QSqlDatabase::contains(QSqlDatabase::defaultConnection))
{
this->dbconn = QSqlDatabase::database(QSqlDatabase::defaultConnection);
}
else
{
this->dbconn = QSqlDatabase::addDatabase("QMYSQL");
}
this-> dbconn.setHostName("localhost");//主机名字
this-> dbconn.setDatabaseName("demo");//数据库名字
if(this->dbconn.open("root", "2020786750"))
{
this->query = (QSqlQuery)this->dbconn; //进行绑定 此后可以使用query对象对数据库进行操作
}
else
{
qDebug()<<"登入失败";
}
}
MainWindow::~MainWindow()
{
delete ui;
}
QT中运行后报错
解决方法
1 先看看自己的QT目录下有没有qsqlmysql.dll
文件夹路径:D:\Qt\Qt5.14.2\5.14.2\mingw73_64\plugins\sqldrivers
没有的话就需要自己编译mysql源码生成qmysql.dll文件
2 打开QT安装目录找到QT自带的MySQL生成项目
文件路径:D:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql
3 双击打开 .pro 文件修改配置文件mysql.pro
修改为
INCLUDEPATH +=D:\mysql-8.4.0-winx64\include/ # 添加你自己的mysql安装目录下的include文件夹
LIBS += D:\mysql-8.4.0-winx64\lib\libmysql.lib # 添加你的mysql安装目录下的lib文件夹libmysql.lib文件
DESTDIR = ../mysql/mysqlDll # 设置编译好的qmysql.dll放置的目录,不然你可能不知道会生成在哪。
注意:一定要用双引号引住MySql头文件和库文件这两个路径,不然后面会出现无法识别到mysql.h的错误
4 修改qsqldriverbase.pri
修改为
5 构建
MySQL如果是64位这里就要选64位,MySQL是32位这里就要选32位。
点击锤子构建
在../mysql/mysqlDll文件夹中生成qsqlmysql.dll libqslmysql.a qsqlmysql.dll.debug三个文件
6 将生成的文件复制到QT对应编译器的安装目录下
文件路径:D:\Qt\Qt5.14.2\5.14.2\mingw73_64\plugins\sqldrivers
7 在mysql安装目录lib中,找到libmysql.dll,拷贝到对应QT编译器的bin目录下
文件路径:D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin