Difference between revisions of "Настройка использования MySQL"
(Created page with 'Навигация: Главная страница/Система ejudge/Инсталляция/Настройка использования MySQL') |
|||
Line 1: | Line 1: | ||
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Инсталляция]]/[[Настройка использования MySQL]] | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Инсталляция]]/[[Настройка использования MySQL]] | ||
+ | |||
+ | Включение использования MySQL для хранения информации о пользователях и посылках следует выполнять после того, как настроена базовая инсталляция ejudge и проверена ее работоспособность. При компиляции ejudge должны быть обнаружены библиотеки MySQL и скомпилированы соответствующие плагины. Например, на системе Fedora для этого должны быть установлены пакеты mysql, mysql-devel, mysql-libs. | ||
+ | |||
+ | Предположим, что каталоги с турнирами и конфигурационными файлами ejudge размещаются в каталоге /home/judges. В этом случае основной конфигурационный файл ejudge называется /home/judges/data/ejudge.xml. | ||
+ | |||
+ | Выполните следующие шаги: | ||
+ | |||
+ | 1. Создайте базу данных и пользователя с полными правами для этой базы данных. Предположим, что база данных называется ejudge, пользователь тоже называется ejudge, а его пароль - EjudgePassword. <b>Не устанавливайте этот пароль в реальных базах данных!</b> | ||
+ | |||
+ | 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_passwd</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 следуюет добавить следующие строки. | ||
+ | <!-- добавляем после </plugins> --> | ||
+ | <default_rundb_plugin>mysql</default_rundb_plugin> | ||
+ | <default_clardb_plugin>mysql</default_clardb_plugin> | ||
+ | |||
+ | 7. Создайте базу данных. | ||
+ | ej-users --create | ||
+ | |||
+ | 8. Сконвертируйте существующих пользователей | ||
+ | ej-users --convert --from-plugin xml --to-plugin mysql | ||
+ | |||
+ | 9. Если были проведены турниры, то базы данных турниров могут быть сконвертированы с помощью команды: | ||
+ | ej-convert-runs CNTS-ID file mysql | ||
+ | |||
+ | 10. Базы вопросов конвертируются командой: | ||
+ | ej-convert-clars CNTS-ID file mysql | ||
+ | |||
+ | 11. Систему ejudge можно запустить, будет использоваться база данных MySQL |
Revision as of 09:59, 6 November 2010
Навигация: Главная страница/Система ejudge/Инсталляция/Настройка использования MySQL
Включение использования MySQL для хранения информации о пользователях и посылках следует выполнять после того, как настроена базовая инсталляция ejudge и проверена ее работоспособность. При компиляции ejudge должны быть обнаружены библиотеки MySQL и скомпилированы соответствующие плагины. Например, на системе Fedora для этого должны быть установлены пакеты mysql, mysql-devel, mysql-libs.
Предположим, что каталоги с турнирами и конфигурационными файлами ejudge размещаются в каталоге /home/judges. В этом случае основной конфигурационный файл ejudge называется /home/judges/data/ejudge.xml.
Выполните следующие шаги:
1. Создайте базу данных и пользователя с полными правами для этой базы данных. Предположим, что база данных называется ejudge, пользователь тоже называется ejudge, а его пароль - EjudgePassword. Не устанавливайте этот пароль в реальных базах данных!
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_passwd</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 --create
8. Сконвертируйте существующих пользователей
ej-users --convert --from-plugin xml --to-plugin mysql
9. Если были проведены турниры, то базы данных турниров могут быть сконвертированы с помощью команды:
ej-convert-runs CNTS-ID file mysql
10. Базы вопросов конвертируются командой:
ej-convert-clars CNTS-ID file mysql
11. Систему ejudge можно запустить, будет использоваться база данных MySQL