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

文章目录

  • 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.结项与项目扩展思路

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

项目管理PMP好考吗,没有经验?

现在越来越多的产品经理和开发人员也投入到考PMP的大军中,在真实的项目中也会有很多产品经理兼任项目经理的职责,这点还是比较常见的,如果说产品或者开发人员考了PMP证书,本身也会让你在找工作的大军中更具有优势,俗话…

一文读懂selenium自动化测试(基于Python)

前言 我们今天来聊聊selenium自动化测试,我们都知道selenium是一款web自动化测试的工具,它应该如何去运用呢?我们接着看下去。 ​1、Selenium简介: 1.1 Selenium: Selenium是一款主要用于Web应用程序自动化测试的工具集合。Sele…

Vue事件

1,回顾js中的事件? 答:标签的状态变化或者被外物改变则称为事件。一般js中的事件都是由浏览器捕捉得到,然后传递给js引擎,浏览器检测到HTML页面中某个标签元素发生了指定的事件,而对应的DOM节点必须去调用回…

Python系列模块之标准库re详解

感谢点赞和关注 ,每天进步一点点!加油! 目录 一、Python 正则表达式 1.1 re模块常用操作 1.2 re.match 1.3 re.search 1.4 re.findall 1.5 re.compile 函数 1.6 re.sub 检索和替换 1.7 re.split拆分 1.8 实战案例:根据文…

全网最全性能测试总结,分析性能测试问题+性能调优方案...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能分析和优化一…

vs code 配置net 开发环境.并搭配vs相似的解决方案面板

由于在本人在Linux22.04下安装Rider 一直处于卡死系统状态.不得不使用该方式 以下为安装步骤 安装 VS code https://code.visualstudio.com/Download 安装 mono https://www.mono-project.com/download/stable/#download-lin 安装 NET SDK https://learn.microsoft.com/zh…

加拿大鹅Q4营收增长超30%,后续如何拿下更多“信任票”?

羽绒服行业正处在一个大混战的时代。有的品牌依托强势单品出海逆袭;有的品牌通过狂追当下Z世代的喜好,推翻经典设计;也有品牌“放下架子”在工厂忙起了特惠直播。在赛道愈发拥挤的背景下,羽绒服行业正在经历“地位”洗牌。 目前&…

如何在WordPress页面上显示或隐藏小部件?

您想在 WordPress 网站的特定页面上显示或隐藏小部件吗? 默认情况下,当您将小部件添加到您的网站时,它们将显示在所有页面上。但是,有时您可能只想在某些页面上显示选定的小部件可以帮助您更好地自定义您的网站并提供个性化的用户…

有哪些好用的App云测试平台?

一、国内外6种好用app云测平台推荐(章节末附pk图) 1、国内云测平台 1)Testin云测 网址:https://www.testin.cn/ Testin云测平台是一款基于云端的移动应用测试平台,为移动应用开发者和测试人员提供一站式的移动应用质…

让数据背后的那些话创造价值 | 数据增长

从行业背景而言,流量红利逐渐消失,野蛮生长的互联网时代接近尾声。传统的烧钱模式、靠体力投放的形式日渐乏力。但是,企业总是要追求增长的。所以在行业大背景下,依靠技术和数据的力量寻求更科学、更高效的方法达成营销目标&#…

关注 | 蛙色元宇宙,正式成为XRMA联盟成员单位

中国虚拟现实与元宇宙产业峰会,2023年3月22日于杭州圆满结束,在杭州市人民政府、浙江省经济和信息化厅指导,由杭州市经济和信息化局、杭州市西湖区人民政府主办,中国信息通信研究院承办。 蛙色元宇宙作为元宇宙的领先企业之一&…

springboot旅游资源管理系统门票酒店预订系统_b0a6b

Spring Boot 是 Spring 家族中的一个全新的框架,它用来简化Spring应用程序的创建和开发过程。也可以说 Spring Boot 能简化我们之前采用SSM(Spring MVC Spring MyBatis )框架进行开发的过程。config:主要用来存储配置文件&#…

凹函数和凸函数

凹函数英文concave,凸函数英文concave。 在有些参考资料中,凸函数又称为下凹(concave down)函数,凹函数称为上凹(concave up)函数。 凹函数和凸函数根据判定方法的不同,分为以下两类: 一元函…

虚幻商城模型转MetaHuman

一、导入虚幻商城的模型到UE 1.去虚幻商城下载一个人物模型,这里以SchoolGirl为例 2.导入UE,并找到模型,这里是SkeletalMesh 二、启动MetaHuman插件 1.通过Edit->Plugins启用MetaHuman和MetaHumanSDK插件,这里MetaHuman插件是用于创建MetaHuman的,MetaHumanSDK插件…

会声会影2023最新完整版免费下载

会声会影2023操作简单,功能同样强大!会声会影附带上百种特效、滤镜、转场、模板。同时各类专业级视频工具,如调色、遮罩、绿幕抠像、运动追踪、分屏创建器,满足更高标准的视频需求。这款软件上手操作简单易学,就算你在…

C++ 初始模板

模板 void Swap(int* x, int* y) {int tmp *x;*x *y;*y tmp; }void Swap(double* x, double* y) {double tmp *x;*x *y;*y tmp; }void Swap(char* x, char* y) {char tmp *x;*x *y;*y tmp; } 如上述所示,我们在实现函数的时候,有很多函数会像…

第四届“中国法研杯”司法人工智能挑战赛-刑期预测赛道三等奖方案

一、前言 本文将回顾第四届“中国法研杯”司法人工智能挑战赛-刑期预测算法赛道比赛。使用多任务预训练、然后进行微调的形式最终在比赛中取得了三等奖的成绩。 二、任务介绍 主办方在第一届“中国法研杯”比赛上提出了刑期预测任务,本届将针对往届刑期预测准确率…

(学习日记)AD学习 #1

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

Leetcode452. 用最少数量的箭引爆气球

Every day a Leetcode 题目来源:452. 用最少数量的箭引爆气球 解法1:排序 贪心 题解:用最少数量的箭引爆气球 我们首先随机地射出一支箭,再看一看是否能够调整这支箭地射出位置,使得我们可以引爆更多数目的气球。…

既然有了IP地址,为什么还需要MAC地址?两者到底有啥区别,深入分析后终于明白了!

在计算机网络中,IP地址和MAC地址是两个最基本的概念。IP地址在互联网中是用于标识主机的逻辑地址,而MAC地址则是用于标识网卡的物理地址。虽然它们都是用于标识一个设备的地址,但是它们的作用和使用场景是不同的。 IP地址是在网络层&#xff…