[負荷分散型オンラインOJ]データベース

41. 包括的なデバッグに Postman を使用する

判定機能を改善します。
ここに画像の説明を挿入
まずコンパイルしてからテストします
。 oj_server をコンパイルした後、compile_server をコンパイルする必要があります。
ここに画像の説明を挿入
ここに画像の説明を挿入
これで、コンパイル サービスと oj_server サービスが存在します
。 現在バックエンドに接続されているサーバーが 3 つあるため、次に 3 つの SSH チャネルをコピーします。
ここに画像の説明を挿入
将来これら 3 つのコンパイル サービスを 3 つの異なるマシンにデプロイできます。その後、構成ファイルを変更し、IP アドレスとポート番号を変更するだけで済みます。そうすれば、oj_server が認識し、ロード バランシングが可能になります。コンパイル サービスをリクエストするには、次の手順を実行します
ここに画像の説明を挿入
。 oj_server
ここに画像の説明を挿入
公式 Web サイトにアクセスしてください
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
Postman を使用して送信をテストした
ここに画像の説明を挿入
後、文法
ここに画像の説明を挿入
ここに画像の説明を挿入
上の問題があることを示すエラーが報告されます。
ここに画像の説明を挿入

すべての関数を完了したら、注意する必要があります。
テスト ケースに含まれるヘッダー ファイルをコンパイルするには、コンパイル モジュールに -D 条件を追加する必要があります。

ここに画像の説明を挿入

上記 3 つのサービスは、make clean の後に ./compile_serverを実行する必要があります。
ここに画像の説明を挿入

再度送信すると、コンパイルが成功し、「両方のテスト ケースが失敗しました。テストでは、
ここに画像の説明を挿入
ここに画像の説明を挿入
ホスト機能が自動的に選択されます。ホスト 1 番とホスト 2 番の両方がハングアップした場合は、ホスト 3 番が自動的に選択されます」と表示されます。 3 つのホストすべてをハングアップするために自動的に選択され、
ここに画像の説明を挿入
エラーが報告されます。
ここに画像の説明を挿入
次の段階: フロントエンド インターフェイスを変更して、OJ が正常に行われるようにします。

42. 理解 - フロントエンドの準備

バックエンド開発はフロントエンド ページに関連する必要がありますか? 全く必要ありません!後で書きたくない場合は、コピーして貼り付けてください

  1. どのプロジェクトにもフロントエンドとバックエンドが必要です
  2. バックエンドはいわゆるページのことは気にしませんが、フロントエンドとバックエンドがどのように相互作用するかを理解する必要があります。ページを書くときは、
    HTML/CSS/JS
    筆記試験面接、フォローアップ作業、バックエンドにはフロントエンドは必要ありません。

1. Beggars’ Edition のホームページ
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 リモート ツール: 3306 ファイアウォールが開いていないため、ここではMySQL Workbench に接続できません
ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

方法 2:
ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

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. テスト録音機能

テーブル構造を記録しました。後でテストを行うのに便利なように、最初に質問をプリセットしましょう。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
質問を記録した後、それを実行し
ここに画像の説明を挿入
、再度実行します。

ここに画像の説明を挿入

方法 2:
ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入
録画した内容が見れます
ここに画像の説明を挿入

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 の 2 つのソフト リンクを導入します。
Include は使用するヘッダー ファイル、
lib は必要なライブラリです。
ここに画像の説明を挿入
ここに画像の説明を挿入

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

ここに画像の説明を挿入
ここに画像の説明を挿入
私たちの oj_server は MVC モデルに基づいており、データを処理する oj_model モジュールは 1 つだけです。このファイルを変更するだけで済みます。
ここに画像の説明を挿入
ここに画像の説明を挿入

56. oj_model 固有のコードを書く

次に、mysql への接続の設計を完了します
。 まず、ヘッダー ファイルをインクルードします。
ここに画像の説明を挿入
ここに画像の説明を挿入

musqlハンドルを作成して初期化します
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

57. MySQL総合テスト

インストールされた mysql に必要なライブラリがある場合、以前のようにソフト リンクを使用する必要はありません。
ここに画像の説明を挿入

oj_serverを実行する
ここに画像の説明を挿入

58. プロジェクトの完了とプロジェクト拡張のアイデア

おすすめ

転載: blog.csdn.net/weixin_47952981/article/details/129827124