Difference between revisions of "Настройка использования MySQL"

From EjudgeWiki
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Инсталляция]]/[[Настройка использования MySQL]]
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Инсталляция]]/[[Настройка использования MySQL]]
 +
 +
<b>Начиная с версии 2.3.29 настройка хранения данных в MySQL выполняется автоматически, если поддержка MySQL была включена при компиляции.</b>
  
 
Включение использования MySQL для хранения информации о пользователях и посылках следует выполнять после того, как настроена базовая инсталляция ejudge и проверена ее работоспособность. При компиляции ejudge должны быть обнаружены библиотеки MySQL и скомпилированы соответствующие плагины. Например, на системе Fedora для этого должны быть установлены пакеты mysql, mysql-devel, mysql-libs.
 
Включение использования MySQL для хранения информации о пользователях и посылках следует выполнять после того, как настроена базовая инсталляция ejudge и проверена ее работоспособность. При компиляции ejudge должны быть обнаружены библиотеки MySQL и скомпилированы соответствующие плагины. Например, на системе Fedora для этого должны быть установлены пакеты mysql, mysql-devel, mysql-libs.
Line 8: Line 10:
  
 
1. Создайте базу данных и пользователя с полными правами для этой базы данных. Предположим, что база данных называется ejudge, пользователь тоже называется ejudge, а его пароль - EjudgePassword. <b>Не устанавливайте этот пароль в реальных базах данных!</b>
 
1. Создайте базу данных и пользователя с полными правами для этой базы данных. Предположим, что база данных называется ejudge, пользователь тоже называется ejudge, а его пароль - EjudgePassword. <b>Не устанавливайте этот пароль в реальных базах данных!</b>
 +
 +
CREATE USER 'ejudge'@'%' IDENTIFIED BY 'ejudge';
 +
GRANT USAGE ON * . * TO 'ejudge'@'%' IDENTIFIED BY 'ejudge' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
 +
CREATE DATABASE IF NOT EXISTS `ejudge` ;
 +
GRANT ALL PRIVILEGES ON `ejudge` . * TO 'ejudge'@'%';
  
 
2. Остановите ejudge, если система ejudge запущена.
 
2. Остановите ejudge, если система ejudge запущена.
Line 32: Line 39:
 
     <plugin type="common" name="mysql" load="yes">
 
     <plugin type="common" name="mysql" load="yes">
 
       <config>
 
       <config>
         <password_file>mysql_passwd</password_file>
+
         <password_file>mysql_password</password_file>
 
         <database>ejudge</database>
 
         <database>ejudge</database>
 
       </config>
 
       </config>
Line 52: Line 59:
 
   <default_clardb_plugin>mysql</default_clardb_plugin>
 
   <default_clardb_plugin>mysql</default_clardb_plugin>
  
7. Создайте базу данных.
+
7. Сконвертируйте существующих пользователей
ej-users --create
 
 
 
8. Сконвертируйте существующих пользователей
 
 
  ej-users --convert --from-plugin xml --to-plugin mysql
 
  ej-users --convert --from-plugin xml --to-plugin mysql
  
9. Если были проведены турниры, то базы данных турниров могут быть сконвертированы с помощью команды:
+
8. Если были проведены турниры, то базы данных турниров могут быть сконвертированы с помощью команды:
 
  ej-convert-runs CNTS-ID file mysql
 
  ej-convert-runs CNTS-ID file mysql
  
10. Базы вопросов конвертируются командой:
+
9. Базы вопросов конвертируются командой:
 
  ej-convert-clars CNTS-ID file mysql
 
  ej-convert-clars CNTS-ID file mysql
  
11. Систему ejudge можно запустить, будет использоваться база данных MySQL
+
10. Систему ejudge можно запустить, будет использоваться база данных MySQL

Latest revision as of 10:25, 24 December 2013

Навигация: Главная страница/Система ejudge/Инсталляция/Настройка использования MySQL

Начиная с версии 2.3.29 настройка хранения данных в MySQL выполняется автоматически, если поддержка MySQL была включена при компиляции.

Включение использования MySQL для хранения информации о пользователях и посылках следует выполнять после того, как настроена базовая инсталляция ejudge и проверена ее работоспособность. При компиляции ejudge должны быть обнаружены библиотеки MySQL и скомпилированы соответствующие плагины. Например, на системе Fedora для этого должны быть установлены пакеты mysql, mysql-devel, mysql-libs.

Предположим, что каталоги с турнирами и конфигурационными файлами ejudge размещаются в каталоге /home/judges. В этом случае основной конфигурационный файл ejudge называется /home/judges/data/ejudge.xml.

Выполните следующие шаги:

1. Создайте базу данных и пользователя с полными правами для этой базы данных. Предположим, что база данных называется ejudge, пользователь тоже называется ejudge, а его пароль - EjudgePassword. Не устанавливайте этот пароль в реальных базах данных!

CREATE USER 'ejudge'@'%' IDENTIFIED BY 'ejudge';
GRANT USAGE ON * . * TO 'ejudge'@'%' IDENTIFIED BY 'ejudge' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE DATABASE IF NOT EXISTS `ejudge` ;
GRANT ALL PRIVILEGES ON `ejudge` . * TO 'ejudge'@'%';

2. Остановите ejudge, если система ejudge запущена.

ejudge-control stop

3. Создайте файл /home/judges/data/mysql_password со следующего вида:

ejudge
EjudgePassword

Первая строка файла - это имя пользователя базы данных, вторая строка файла - его пароль.

4. Следует сделать этот файл доступным на чтение только пользователю, из-под которого работает ejudge. Например, если ejudge запускается из-под пользователя ejudge, то можно выполнить следующую команду, войдя под пользователем ejudge.

chmod 600 /home/judges/data/mysql_password

5. В файл /home/judges/data/ejudge.xml следует добавить следующие строки:

  <plugins>
    <plugin type="nsdb" name="files">
      <config>
        <data_dir>/home/judges/data/nsdb_files</data_dir>
      </config>
    </plugin>
    <plugin type="common" name="mysql" load="yes">
      <config>
        <password_file>mysql_password</password_file>
        <database>ejudge</database>
      </config>
    </plugin>
    <plugin type="uldb" name="mysql" load="yes" default="yes">
      <config/>
    </plugin>
    <plugin type="cldb" name="mysql" load="yes">
      <config/>
    </plugin>
    <plugin type="rldb" name="mysql" load="yes">
      <config/>
    </plugin>
  </plugins>

6. Чтобы для хранения посылок турниров mysql использовался по умолчанию, в файл /home/judges/data/ejudge.xml следуюет добавить следующие строки.

  <default_rundb_plugin>mysql</default_rundb_plugin>
  <default_clardb_plugin>mysql</default_clardb_plugin>

7. Сконвертируйте существующих пользователей

ej-users --convert --from-plugin xml --to-plugin mysql

8. Если были проведены турниры, то базы данных турниров могут быть сконвертированы с помощью команды:

ej-convert-runs CNTS-ID file mysql

9. Базы вопросов конвертируются командой:

ej-convert-clars CNTS-ID file mysql

10. Систему ejudge можно запустить, будет использоваться база данных MySQL