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

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

猜你喜欢

转载自blog.csdn.net/weixin_47952981/article/details/129827124