DOMjudge 中文文档
  • 概述
  • 术语对照表
  • 管理员手册
    • 1 Domjudge 总体介绍
      • 1.1 功能
      • 1.2 环境依赖
      • 1.3 版权许可
      • 1.4 联系方式
    • 2 比赛安排
      • 2.1 比赛硬件
      • 2.2 环境依赖
    • 3 安装与配置
      • 3.1 快速安装
      • 3.2 准备工作
      • 3.3 安装评测系统
      • 3.4 安装数据库
      • 3.5 Web 服务器配置
      • 3.6 微调服务器的设置
      • 3.7 安装 judgehost
      • 3.8 构建和安装 submit client
      • 3.9 配置
      • 3.10 OpenID connect
      • 3.11 可执行文件
      • 3.12 语言设置
      • 3.13 设置特殊运行和比较程序
      • 3.14 通知系统
      • 3.15 其他可配置脚本
      • 3.16 日志和调试
      • 3.17 (重新)生成文档和团队手册
      • 3.18 可选功能
      • 3.19 更新
    • 4 配置一场比赛
      • 4.1 配置比赛数据
      • 4.2 比赛里程碑
      • 4.3 用户验证
      • 4.4 提供测试数据
      • 4.5 开启守护进程
      • 4.6 检查确保一切就绪
      • 4.7 测试裁判解(jury solutions)
    • 5 队伍环境
    • 6 网页界面
      • 6.1 裁判及管理员视图
      • 6.2 得分榜
      • 6.3 气球
    • 7 安全性
      • 7.1 考量
      • 7.2 内部安全
      • 7.3 root 权限
      • 7.4 文件系统权限
      • 7.5 外部安全
    • 附录
      • 8 常见问题和解决方案
        • 8.5 Memory limit errors in the web interface
        • 8.6 Compiler errors: `runguard: root privileges not dropped'
      • 9 多站比赛
      • 10 致开发者
        • 10.1 从 Git 源码库引导
        • 10.2 维护模式安装
        • 10.3 Makefile 结构
  • 裁判手册
    • 1 Domjudge 总体介绍
      • 1.1 功能
      • 1.2 版权许可
      • 1.3 联系方式
    • 2 概要
      • 2.1 裁判与管理员
      • 2.2 榜单
    • 3 比赛前
      • 3.1 题目及语言
      • 3.2 核对测试数据
      • 3.3 测试题解
      • 3.4 热身赛
    • 4 比赛期间
      • 4.1 监测队伍状态
      • 4.2 评测提交
      • 4.3 解释请求
    • 5 比赛后
    • 附录
      • 6 题目打包格式
  • 队员手册
    • 0 概要
    • 1 提交题解
      • 1.1 通过命令行
      • 1.2 通过网页界面
    • 2 查看提交结果
      • 2.1 可能的结果
    • 3 解释
    • 4 提交是怎么被评测的?
      • 4.1 提交题解
      • 4.2 编译
      • 4.3 测试
      • 4.4 各种限制
    • 附录
      • A 样例代码
Powered by GitBook
On this page
  • 设置复制(replication)或备份
  • 存储提交信息

Was this helpful?

  1. 管理员手册
  2. 3 安装与配置

3.4 安装数据库

Previous3.3 安装评测系统Next3.5 Web 服务器配置

Last updated 6 years ago

Was this helpful?

domjudge 使用 MySQL 或 MariaDB 数据库服务进行数据存储; 本节将讨论 MySQL, 你可以认为它对 MariaDB 也适用

数据库结构和权限在 sql 子文件夹的 MySQL 转储文件中; 默认的数据库名称是 domjudge; 你可以在 etc/dbpasswords.secret 文件中进行修改, 安装时将采用此文件中指定的数据库名称

数据库通过 bin/dj_setup_database 命令安装; 为此你需要一个安装并配置好的 MySQL 服务和其管理员访问权限; 执行下列命令

dj_setup_database genpass
dj_setup_database [-u <admin_user>] [-p <password>|-r] install

这首先会创建一个 Domjudge 数据库的凭证文件 etc/dbpasswords.secret (你可以改变程序生成的随机密码, 尽管一般操作并不需要); 接下来它会创建数据库和用户并向 domjudge 数据库插入一些默认(示例)数据; 选项 -r 将会询问你 mysql 的密码; 如果你没有指定用户, mysql 客户端将尝试从 $HOME/.my.cnf 读取凭据; dj_setup_database 命令的 uninstall 选项将会删除 domjudge 的数据库和用户(这将会删除所有数据)

domjudge 数据库包含很多数据表, 其中一些表需要在比赛开始之前手动填入数据, 详情参见

设置复制(replication)或备份

MySQL 服务器是 Domjudge 的数据存储中心, 想一想若是 MySQL 主机出现故障或丢失数据该怎么办

一种很可靠的方法是在另一台主机上设置一个复制的 MySQL 服务, 所有的数据都将被热拷贝到这台主机中; 一旦当前主机挂掉, 可以立刻切到另一台主机; MySQl 手册 中有关于此的详细信息

另外, 你也可以在另一台主机上做一个常规的数据备份, 例如使用 mysqldump 命令或一个基于 RAID 的系统

你也可以用复制来高性能, 即通过在主服务器上完成更新(update)动作, 而将所有选择查询(select-queries)定向到一个或多个复制的从属服务器中; 但是这个功能不支持开箱即用并且需要修改 Domjudge 的源码

存储提交信息

数据库中的内容是提交的源代码的权威版本(注: 即数据库中的文件在还原比赛过程中更具有权威性); 文件系统存储是一种访问源文件和备份的简便方法, 但是只有当 web 服务对 <domjudge_submitdir> 有可写权的时候才能使用, 如果没有权限, 则会忽略文件系统存储; bin/save_sources2file 和 bin/restore_sources2db 命令可以用于存储数据库中的提交表到这些文件, 或从这些文件中恢复提交表

比赛数据库设置