1. 程式人生 > >將hustoj 資料從Ubuntu 14.04 成功遷移到 ubuntu 16.04

將hustoj 資料從Ubuntu 14.04 成功遷移到 ubuntu 16.04

一、首先需要搭建一個hustoj:

前幾天在Ubuntu16.04上搭建了一個hustoj,剛開始各種錯誤,不過最後還是成功搭建完畢。

搭建方法請參考:hustoj搭建

裡邊介紹了我在搭建中遇到的一些常見問題,最後總結了一個指令碼,直接執行即可安裝成功,中間會有四個檔案無法建立或無法連線,屬於正常情況,不用理會。在安裝前期會提示設定資料庫密碼,請全部設定為root。

二、準備三個檔案:

1.從ubuntu14.04上拷貝資料庫jol.sql檔案

mysqldump -u root -proot jol > /home/jol.sql

會有下圖那樣的一個warning,這個是提示資料庫密碼直接寫在命令列中不安全,不用理會,資料會正常匯出。
這裡寫圖片描述

2.拷貝/home/Judge下的data檔案

hustoj的資料組成:
mysql裡面的jol庫,以及/home/judge/data下的資料
jol庫:包含了所有的題目資料,使用者資料,使用者的提交記錄等。
/home/judge/data:各個題目的判題資料(樣例輸入輸出,測試輸入輸出)以及AC程式碼

三、準備好之後將這些檔案複製到相應的位置,替換掉原來的檔案

將jol.sql匯入MySQL:

1.先登入MySQL;

2.用 use jol 命令將資料庫切換到jol;

3.然後用 source /home/jol.sql; 命令將資料匯入。

四、遷移之後候遇到的一些問題

永久等待或者永久編譯,解決辦法:

1.修改使用者組,修改所屬組

檢視/home/Judge下的檔案,使用ls -al 命令檢視data檔案的檔案屬性,將data的檔案所有者改為www-data,將檔案所屬使用者組改為root。
像下圖一樣
這裡寫圖片描述

然後將data裡的所有題目的檔案所有者改為www-data,將檔案所屬使用者組改為www-data
像下圖一樣
這裡寫圖片描述

2重啟judged服務

然後使用ps -A 命令檢視judged服務有沒有啟動,如果沒有啟動使用 judged 命令啟動judged服務