【负载均衡式在线OJ】 数据库

news2024/11/25 15:25:00

文章目录

  • 41.使用Postman进行综合调试
  • 42.了解-前端预备
  • 52. 添加oj用户到MySQL
  • 53. 使用MySQL_Workbench创建表结构
  • 54. 测试录题功能
  • 55.重新设计oj_model
  • 56.编写oj_model具体代码
  • 57.MySQL综合测试
  • 58.结项与项目扩展思路

41.使用Postman进行综合调试

完善判题功能
在这里插入图片描述
先编译再测试
编译完oj_server还需要编译compile_server
在这里插入图片描述
在这里插入图片描述
现在既有一个编译服务,还有一个oj_server服务
因为当前在我们后端,连接的服务端有三台,所以接下来,复制三个SSH渠道
在这里插入图片描述
将来我们可以把这三个编译服务部署到三台不同的机器上,然后我们只需要改我们的配置文件,把ip地址和端口号一改,然后oj_server就知道了,然后他就可以负载均衡式的去请求我们的编译服务
在这里插入图片描述
把oj_server启动起来
在这里插入图片描述
访问我们的官网
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用Postman测试一下
在这里插入图片描述
send之后,报错,说明有语法问题
在这里插入图片描述
在这里插入图片描述
之前遗留的问题
在这里插入图片描述

当我们完成全部功能之后,需要注意:
要给编译模块添加—D条件编译掉测试用例中的头文件incldue

在这里插入图片描述
修改之后,重新再启动一遍
上面三个服务需要make clean;make 之后再./compile_server
在这里插入图片描述

再send一下,编译成功,显示说:两个测试用例都没有通过
在这里插入图片描述
在这里插入图片描述
测试自动选择主机功能:把1号主机和2号主机都挂掉,则会自动选择3号主机
在这里插入图片描述
把三台主机都挂掉,则会报错
在这里插入图片描述
下一阶段:修改前端界面保证正常OJ

42.了解-前端预备

后端开发需要关系前端页面?根本不需要!如果后续大家不想写,直接复制粘贴即可

  1. 任何项目,都要有前后端
  2. 后端虽然不关心所谓的页面,但是需要了解一下前后端是如何交互的
    编写页面的时候,需要三剑客: html/css/js
    笔试面试,后续工作,后端不用前端!

1.丐版的首页
2.所有题目的列表
3.指定题目的编写代码的页面+代码提交

1.丐版的首页
在这里插入图片描述

52. 添加oj用户到MySQL

1.创建用户并赋权
在这里插入图片描述
2.在这里插入图片描述

3.创建新用户在这里插入图片描述

create user oj_client@'%' identified by '123456';

在这里插入图片描述

4.给新用户赋权
在这里插入图片描述
在这里插入图片描述
创建OJ数据库
在这里插入图片描述

create database oj;
show create database oj;

在这里插入图片描述
赋权:在oj数据库下给他赋上所有权限,给oj——client
在这里插入图片描述

grant all on oj.* to oj_client@'%';

赋好之后退出
在这里插入图片描述
在本地登陆一下新建的用户,发现登不进去,密码是123456
在这里插入图片描述

在xshell中登不进去,远程登一下试试
在这里插入图片描述
在这里插入图片描述
远程可以登,本地登不了。
在这里插入图片描述

create user oj_client@'localhost' identified by '123456';

在这里插入图片描述

grant all on oj.* to oj_client@'localhost';
use mysql;
select User,Host from user;

在这里插入图片描述
本地登录
在这里插入图片描述

mysql -uoj_client -h127.0.0.1 -p

接下来要在数据库里建一个oj_questions的表
在这里插入图片描述

53. 使用MySQL_Workbench创建表结构

测试用户是否有建表权限:
在这里插入图片描述
在这里插入图片描述

create table user (id int);


在这里插入图片描述

mysql远程工具:MySQL Workbench
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我自己在这块儿连不上去,因为自己的3306的防火墙没开
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

方法二:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

USE oj;

CREATE TABLE IF NOT EXISTS `oj_questions` (
    `number` INT PRIMARY KEY AUTO_INCREMENT COMMENT '题目的编号',
    `title` VARCHAR(128) NOT NULL COMMENT '题目的标题',
    `star` VARCHAR(8) NOT NULL COMMENT '题目的难度',
    `description` TEXT NOT NULL COMMENT '题目的描述',
    `header` TEXT NOT NULL COMMENT '对应题目预设给用户看的代码',
    `tail` TEXT NOT NULL COMMENT '对应题目的测试用例代码',
    `cpu_limit` INT DEFAULT 1 COMMENT '对应题目的超时时间',
    `mem_limit` INT DEFAULT 50000 COMMENT '对应题目的最大开辟的内存空间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在这里插入图片描述

可以在linux上看结果
在这里插入图片描述
在这里插入图片描述

54. 测试录题功能

刚刚录了表结构,下面先预设一道题目,方便后面做测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
录题之后,执行
在这里插入图片描述
再执行一次

在这里插入图片描述

方法二:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
可以看到录进来的内容
在这里插入图片描述

55.重新设计oj_model

接下来访问数据库,我们本来需要数据库官方提供的一些链接去连接数据库,有可能你的系统中,已经默认安装了mysql的开发包。
但是本项目使用第三方引入的方式,不安装
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载之后,上传到服务器中
rz 命令可以直接把下载好的上传到服务器
在这里插入图片描述
在这里插入图片描述
将压缩包解压到当前目录下
在这里插入图片描述

tar zxvf mysql-connector-c-6.1.11-linux-glibc2.12-x86_64.tar.gz

改个名字
在这里插入图片描述

mv mysql-connector-c-6.1.11-linux-glibc2.12-x86_64 mysql-connector

现在这个库有了,怎么引入到项目里面呢?
引入两个软连接,include和lib
include里面就是我们所要使用的头文件
lib里面就是我们需要的库
在这里插入图片描述
在这里插入图片描述

ln -s ~/third_part/mysql-connector/include include

在这里插入图片描述
在这里插入图片描述
我们的oj_server基于MVC模式的,和数据打交道的只有一个oj_model模块,只需要更改该文件即可!!
在这里插入图片描述
在这里插入图片描述

56.编写oj_model具体代码

接下来完成连接mysql的设计
首先,包含头文件
在这里插入图片描述
在这里插入图片描述

创建musql句柄,然后初始化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

57.MySQL综合测试

如果安装的mysql里面有需要的库,就不用像之前一样软连接了
在这里插入图片描述

运行oj_server
在这里插入图片描述

58.结项与项目扩展思路

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/552006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpingBoot简介—helloworld

目录 一、使用idea创建第一个SpringBoot项目 二、Hello World 三、整体项目结构 一、使用idea创建第一个SpringBoot项目 在进行这一步时,可能会遇到问题,如下图所示: 在这里解决方法有以下四种: (1)方法1&…

国内AI大模型 VS chatgpt (20)-- H265/H264有何不同,h265有什么优势?

H265/H264有何不同,h265有什么优势? 文心一言: H.264和H.265是两种不同的视频编码标准,它们在压缩质量和带宽需求方面有所不同。 H.264是一种高效的视频压缩标准,它的编码单位是宏块(macroblock)&#…

XML配置方式整合SSM框架实现用户登录

文章目录 一,创建数据库与表(一)创建数据库(二)创建用户表(三)在用户表里插入记录 二,创建Maven项目三,项目添加相关依赖四,创建日志属性文件五,创…

Aspose.Tasks for Java 23crack

Aspose.Tasks for Java 23crack 新属性允许您控制“分配成本”和“剩余成本”的自动计算。 Aspose.Tasks for Java是一个项目管理API,可帮助您操作Microsoft project文档。开发人员可以定义项目的主要属性和默认属性以及日历信息。他们还可以指定工作日和日历例外情…

【5.21】六、自动化测试—持续集成测试

目录 6.4 持续集成测试 6.4.1 持续集成的概念 6.4.2 持续集成测试框架设计 6.4 持续集成测试 持续集成(Continuous Integration,CI)是软件开发DevOps(DevelopmentOperations)中的一个概念,它强调的是软…

【第十一届泰迪杯数据挖掘挑战赛】A 题:新冠疫情防控数据的分析 思路+代码(持续更新)

【第十一届泰迪杯数据挖掘挑战赛】A 题:新冠疫情防控数据的分析 思路代码(持续更新) 问题背景解决问题代码下载数据分析Task1Task2Task3Task4 问题背景 自 2019 年底至今,全国各地陆续出现不同程度的新冠病毒感染疫情,…

目标检测复盘 --4. Faster RCNN

Fast RCNN的性能得到了很大的提升,但是还是有很大一部分开销在候选框的生成模块,也就是SS算法,Faster RCNN使用一个网络专门干这个事,从而加快整体检测速度,能达到5帧每秒。所以这里的FasterRCNN也就是RPNFastRCNN RPN…

opencv_c++学习(十六)

一、线性滤波 均值滤波: blur(InputArray src, utputArray dst,Size ksize, Point anchor Point(-i,-1), int borderType BoRDER_DEFAULT)src:待均值滤波的图像,图像的数据类型必须是CV_8U、CV_16U、CV_16S、CV_32F和CV_64F这五种数据类型之一。 ds…

详解RGB和XYZ色彩空间转换之上

前言 首先需要指明本文中描述的R,G,B并非通常的sRGB中的三个分量R,G,B,而是波长分别为700nm,546.1nm,435.8nm的单色红光,单色绿光,单色蓝光。sRGB中的RGB中的红色、绿色、蓝色已经不是单色光了。虽然习惯上大家都叫RGB…

Java配置类整合SSM框架实现用户登录

文章目录 一,创建数据库与表(一)创建数据库(二)创建用户表(三)在用户表里插入记录 二,创建Maven项目三,添加相关依赖四,创建日志属性文件五,创建数…

自动化测试与手工测试的区别是什么?

目录 什么是自动化测试? 自动化测试与手工测试的区别 自动化测试的困境 什么是自动化测试? 自动化测试是指利用软件测试工具自动实现全部或部分测试,它是软件测试的一个重要组成 部分,能完成许多手工测试无法实现或难以实现的测试。能够正确、合理地…

DAY 62 mysql的高级语句

表连接查询 MYSQL数据库中的三种连接: inner join(内连接):只返回两个表中联结字段相等的行(有交集的值)left join(左连接):返回包括左表中的所有记录和右表中联结字段相等的记录right join(右连接):返回…

【P28】JMeter 测试活动(Flow Control Action)

文章目录 一、测试活动(Flow Control Action)参数说明二、测试计划设计2.1、Pause 2.2、Break Current Loop2.3、Stop 一、测试活动(Flow Control Action)参数说明 控制取样器流程 选择线程组右键 >>> 添加 >>&g…

chatgpt赋能Python-python8_3

Python 8%3 - 了解Python中的求余运算 Python是一种通用编程语言,具有广泛的应用领域,如Web开发、数据分析、机器学习等。在Python中,求余运算是一种重要且常用的运算。本文将介绍Python中的求余运算,并且重点讲解Python中的8%3的…

【二叉树】(一)

🖊作者 : D. Star. 📘专栏 : 数据结构 😆今日分享 : 为什么阴干的衣服会有味道? 衣服上超过三分之二的污垢来自我们身体外部的分泌物,即汗水和皮脂。如果在洗衣服的过程中皮脂没有洗干净的话,它就可以成为衣服&#x…

计算机基础数据结构和算法动态可视化展示网站收录

计算机中有很多数据结构、算法对于小白来说非常难理解,交互式动画一步步展示整个过程可以帮助我们快速准确地理解这些算法。我们整理了12个可动态交互和展示常见数据结构和排序、图算法等网站,总计12个 收录到 webhub123​www.webhub123.com/#/home/de…

C 学习笔记 —— 内存操作函数

文章目录 内存操作函数memcpy实例 memmove内存重叠问题 memcmp实例 memset不能任意赋值 参考资料 内存操作函数 内存操作函数也是在<string.h>头文件中的 四个内存函数&#xff1a; memcpy(内存拷贝&#xff09; memmove&#xff08;内存移动&#xff09; memcmp&#…

C++ 期末冲刺3h

C 1. 基础程序 #include "iostream" // C头文件 #include "stdio.h" // C 头文件 //using namespace std; // 命名空间// main() 是程序开始执行的地方int main() {std::cout << "Hello, World!" << "\n";return 0; …

Jenkins持续集成之windows下安装jenkins

官方地址&#xff1a; https://jenkins.io/download/ 安装jenkins 下载windows和linux通用的war包 启动 Jenkins 将 jenkins.war 放到 tomcat安装目录/webapps 下 访问 http://127.0.0.1:8080/jenkins 我这里因为之前已经走过初始化步骤了&#xff0c;所以直接进去了主界面…

Datacom-HCIE 题库 03(10月26日更新)--含解析

单选题 1.[试题编号&#xff1a;189810] &#xff08;单选题&#xff09;SSH算法协商阶段中&#xff0c;双方交换自身所支持的算法列表。SSH服务器的对称加密算法列表依次为:aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc。SSH客户端的对称加密算法列表依次为&#xff1a;aes1…