QT上位机连接MYSQL(五)

一. 题外话

QtCreater最终生成的是一个.exe的可执行文件,我们只用双击这个文件,就可以进入我们的软件界面了。当然,我们制作上位机,除了制作软件,也可以制作网页

下面的内容,也只是我对制作网页来和MYSQL进行连接的一些资料查看,因为我项目还是采用QT制作的软件作为上位机,所以下面的内容只是我在进行这个像目前的资料查询。

1. 查看自己的云服务器配置文件

/etc/httpd/conf/httpd.conf

/etc/httpd/conf/httpd.conf这个文件包含了服务器所需的大部分配置指令,比如监听端口,服务器名称,文档根目录,日志文件位置,模块加载,虚拟主机设置等。

我们在这个文件中可以看到这一部分

 <VirtualHost *:80>
  DocumentRoot 路径
  ServerName 域名
  <Directory "路径">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
  </Directory>
</VirtualHost>

 这段代码定义了一个虚拟主机,它配置了网站在端口80上的基本设置。

<VirtualHost *:80>

# 这个指令定义了一个虚拟主机,*:80表示这个虚拟主机监听所有IP地址的80端口(HTTP的标准端口)

  DocumentRoot 路径
  # 指定网站的文件根目录,即网站内容存放的目录,所有访问到这个虚拟主机的请求,如果URL中没有指定具体的文件或目录,Apache将在这个目录下查找名为index.html的文件作为响应。

  ServerName 域名

#设置服务器的名称 ,这是Apache在处理请求时用来确定哪个虚拟主机配置应该被应用的标识符。确保这个名称与你的域名相匹配,并且DNS解析已经正确设置

 Directory "路径">

# 定义一共针对根目录下特定目录(路径)的配置块。

 Options Indexes FollowSymLinks

# 开启对目录的浏览(如果目录中没有index文件时)和允许符号链接的跟随 )

  # 禁止在.htaccess文件中使用Override指令来覆盖这里的配置  
    AllowOverride None 

 # 允许所有访问,这是Apache 2.4及以上版本中的授权方式  
    Require all granted 

2. DocumentRoot了解

我们在云服务器的配置文件中看到有一个与主机匹配的"路径",我们可以进入路径看一下,例如我打开我某一个域名对应的路径 /var/www/html

这个目录通常被用作Web内容的根目录,即所谓的"DocumentRoot",这就意味着当我们通过Web浏览器访问安装到Apache服务器上的网站时,默认情况下,Apache会从/var/www/html目录中提供网站文件(如HTML,CSS,JavaScipt,图片)

而接下来我们来探讨MySQL SDK与/var/www/html 目录之间的关系

MySQL SDK 通常指的是MySQL的软件开发工具包,它包含了一系列库,文档和工具,用于帮助开发者在他们的应用程序中集成MySQL数据库。这些库可能包括用于不同编程语言的接口(如 PHP 的 MySQLi 或 PDO_MySQL,Python 的 MySQLdb 或 PyMySQL,Java 的 JDBC 驱动等)

/var/www/html 这是一个文件系统目录,用于存放Web应用程序的静态和动态内容,这些内容通过Web服务器对外提供服务

当Web应用程序(位于 /var/www/html 或其子目录中) 需要与MySQL数据库交互时,它会通过MySQL SDK提供的接口或库来执行数据库查询,更新,插入和删除等操作。这些操作是通过网络(如果 MySQL 服务器与 Web 服务器不在同一台机器上)或者本地(如果它们在同一台机器上)进行的。

二. 正式开始

题外话结束后,我们来真正的设计QT。我们可以先查看一下mysql的运行状态,并且开放端口,随后重启防火墙就完成了。

1. 安装MySQL ODBC驱动

参考链接:下载安装MySQL数据库ODBC驱动和配置MySQL ODBC数据源_mysql odbc 8.0 unicode driver 下载-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_41940427/article/details/106753922

qt连接阿里云服务器上的MYSQL_qt 连接阿里云mysql-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_72583325/article/details/133268343?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172111836316800185843783%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=172111836316800185843783&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-133268343-null-null.142%5Ev100%5Epc_search_result_base4&utm_term=qt%E4%BD%BF%E7%94%A8ODBC%E8%BF%9E%E6%8E%A5%E9%98%BF%E9%87%8C%E4%BA%91MYSQL&spm=1018.2226.3001.4187 

配置MySQL ODBC 数据源

2. Qt远程连接云服务器MYSQL

首先,在项目中的.pro文件中加上

QT += sql

然后在主文件中,包含以下头文件:

#include <QMessageBox>
#include <QSqlDatabase>

#include <QSqlQuery>

#include <QDebug>

#include<QStringList>

main.c写入以下代码:

#include "mainwindow.h"
#include <QApplication>
#include <QSqlDatabase>
#include <QDebug>
#include <QStringList>
#include <QSqlQuery>

#define HOSTNAME "47.116.118.86"
#define POST 3306
#define DATANAME "test"
#define USERNAME "qt"
#define PASSWORD "zhongkeruihe"


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QSqlDatabase db=QSqlDatabase::addDatabase ("QODBC");

        db.setDatabaseName(DATANAME);//填写你上一步中设置的信息源名称
        if(!db.open ())
            {
              qDebug()<<"DataBase Error"<<endl;
            }
            else
            {
              qDebug()<<"successful"<<endl;
              QString cmd = "show databases;";
              QSqlQuery   query(cmd);

              while (query.next())
              {
                  qDebug() << "table name:" << query.value(0).toString();
              }

            }

    //MainWindow w;
    //w.show();

    return a.exec();
}


如果你们也和我一样是远程连接,还需要进行一些配置,当然有看过我之前数据库那篇文章的就不需要配置了

(1)GRANT ALL PRIVILEGES ON . TO ‘用户名’@’%’ IDENTIFIED BY ‘密码’ WITH GRANT OPTION;
这里表示赋予该用户所有数据库所有表(*.*表示所有表),%表示所有IP地址。
(2)FLUSH PRIVILEGES; 刷新权限
(3)chkconfig iptables off 关闭防火墙。也可以不关闭,如果连接不上,之后再关闭即可
(4)查看Mysql配置文件种(一般是/etc/my.cnf种)是否指定了blind-address,这表示只能是某个或某几个ip能连接。如果有就将它注释了,前面加#号注释。然后从启mysql。最后,(5)重启mysql:service mysqld restart

最后我们编译运行,就能看到以及连接到MySQL了,并且能成功打印数据库

三. 参考链接

qt连接阿里云服务器上的MYSQL_阿里云_champion孺-华为开发者联盟HarmonyOS专区 (csdn.net)icon-default.png?t=N7T8https://huaweidevelopers.csdn.net/6582ba9c2c13685765deaccf.html?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MzE3NTAwOCwiZXhwIjoxNzIxNzE3Mzc0LCJpYXQiOjE3MjExMTI1NzQsInVzZXJuYW1lIjoibTBfNjY3NDY1MTIifQ.qwVS7yXAzcgp5qR_YWfqObo_viVzObXLvDw_D-WeNdMQT读取云数据库(MySQL),实现对云数据库的操作管理,并可打包发给其他用户_qt querytemperature-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_64770714/article/details/132981341?spm=1001.2014.3001.5506QT连接Mysql简便方法和遭遇的那些坑-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_42758338/article/details/108993392?ops_request_misc=&request_id=&biz_id=102&utm_term=qt%E4%BD%BF%E7%94%A8ODBC%E8%BF%9E%E6%8E%A5%E9%98%BF%E9%87%8C%E4%BA%91MYSQL&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-108993392.142%5Ev100%5Epc_search_result_base4&spm=1018.2226.3001.4187

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值