Qt Creator 配置Mysql环境直通车


视频示例:如下直通车

一、安装Mysql数据库软件

1.下载安装连接:点击连接

2.解压,打开如下

3.设置环境变量

4.修改添加环境变量

5.新建配置文件my.ini(新建一个空白文件)

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\\Mysql\\mysql-5.7.33-win32
# 设置mysql数据库的数据的存放目录
#datadir=D:\\Mysql\\mysql-5.7.33-win32\\Data 
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

详细安装过程请参考:压缩包安装mysql

6.检测本机QT是否有mysql驱动

没有mysql驱动时出现如下错误:

QSqlDatabase: QMYSQL driver not loaded

检测程序:

#include "widget.h"
#include "ui_widget.h"
#include <QSqlDatabase>
#include <QDebug>
#include <QMessageBox>
#include <QSqlQuery>
#include <QSqlError>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
&#123;
    ui->setupUi(this);
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//添加驱动
    db.setHostName("localhost");
    db.setUserName("root");
    db.setPassword("123456");
    db.setDatabaseName("sys");
    if(!db.open())&#123;
        QMessageBox::warning(this,"错误",db.lastError().text());
        return;
    &#125;
    QSqlQuery query;
    qDebug()<<QSqlDatabase::drivers();
&#125;

Widget::~Widget()
&#123;
    delete ui;
&#125;

出现报错,就按照如下教程手动编译mysql驱动:qt连接mysql报错:QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC…

按照教程修改后将会出现如下效果:

进而将驱动以及库文件放到相应的地方!

小插曲:

手动编译仍未出现上面那个文件夹有可能就是qt出现了问题,建议重装!我的就是编译以后没有出现那个文件夹,百度了两天仍未解决,于是乎。。。我就重装了,然后就解决了!

注意:mysql的版本要与qt对应,这里用的是32位的

至此,配置成功!

二、开启连接远程数据库

法一:修改表格

  • 在bin目录下打开数据库

输入:

MySQL>update user set host = '%' where
user = 'root';
MySQL>select host, user from user;
MySQL>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
//解释:开启全部权限,'root'自定义的用户名,可以是别的;'%'是代表对任意的ip地址开放;'mypassword' 是自定义的密码。
MySQL>flush privileges;
MySQL>EXIT

法二:直接修改(我采用这个)

mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO ‘root'@'%' IDENTIFIED BY
‘MyPassword' WITH GRANT OPTION;
//和上面一样,当然这里可以把%替换为你指定的ip也可以不指定
MySQL>flush privileges;//开启权限

连接测试:

连接成功,无报错!

远程连接已开启,目前可以实现本地连接和远程连接!

注意:在进行连接数据库时请在.pro中添加:QT += core gui sql


文章作者: xiao J
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 xiao J !
  目录