Ошибка установки версии 3.6.4 при создании базы данных

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
lariliel
Posts:10
Joined:09 November 2012, 15:40
Contact:
Ошибка установки версии 3.6.4 при создании базы данных

Post by lariliel » 05 July 2017, 15:24

Выдает при установке в момент ввода команды

Code: Select all

# ./ejudge-install.sh

Code: Select all

mysql: ALTER DATABASE [i]база_данных[/i] DEFAULT CHARACTER SET 'utf8' ;

mysql: CREATE TABLE IF NOT EXISTS config         (config_key VARCHAR(64) NOT NULL PRIMARY KEY COLLATE utf8_bin,        config_val VARCHAR(64)        )
mysql: CREATE TABLE logins        (user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,        login VARCHAR(64) NOT NULL UNIQUE KEY COLLATE utf8_bin,        email VARCHAR(128),        pwdmethod TINYINT NOT NULL DEFAULT 0,        password VARCHAR(128),        privileged TINYINT NOT NULL DEFAULT 0,        invisible TINYINT NOT NULL DEFAULT 0,        banned TINYINT NOT NULL DEFAULT 0,        locked TINYINT NOT NULL DEFAULT 0,        readonly TINYINT NOT NULL DEFAULT 0,        neverclean TINYINT NOT NULL DEFAULT 0,        simplereg TINYINT NOT NULL DEFAULT 0,        regtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,        logintime TIMESTAMP DEFAULT 0,        pwdtime TIMESTAMP DEFAULT 0,        changetime TIMESTAMP DEFAULT 0        )
2017-07-05T12:20:44Z:error:database error: Invalid default value for 'logintime'
2017-07-05T12:20:44Z:error:plugin mysql failed to create a new database
Command failed: /opt/ejudge/libexec/ejudge/bin/ej-users -u ejudge -g ejudge --convert --from-plugin xml --to-plugin mysql
Принудительная очистка базы данных успеха не принесла.
Версия MySQL-сервера из phpMyAdmin:

Code: Select all

Сервер: Localhost via UNIX socket
Тип сервера: MySQL
Версия сервера: 5.7.18 - MySQL Community Server (GPL)
Версия протокола: 10
Кодировка сервера: UTF-8 Unicode (utf8)
Скажите, пожалуйста, как это исправить.
Спасибо.

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Ошибка установки версии 3.6.4 при создании базы данных

Post by cher » 06 July 2017, 09:24

Попробуйте взять текущую master версию из git

lariliel
Posts:10
Joined:09 November 2012, 15:40
Contact:

Re: Ошибка установки версии 3.6.4 при создании базы данных

Post by lariliel » 08 August 2017, 23:43

Добрый день.
К сожалению, в версии 3.6.5 ошибка сохраняется:

Code: Select all

mysql: CREATE TABLE IF NOT EXISTS config         (config_key VARCHAR(64) NOT NULL PRIMARY KEY COLLATE utf8_bin,        config_val VARCHAR(64)        )
mysql: CREATE TABLE logins        (user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,        login VARCHAR(64) NOT NULL UNIQUE KEY COLLATE utf8_bin,        email VARCHAR(128),        pwdmethod TINYINT NOT NULL DEFAULT 0,        password VARCHAR(128),        privileged TINYINT NOT NULL DEFAULT 0,        invisible TINYINT NOT NULL DEFAULT 0,        banned TINYINT NOT NULL DEFAULT 0,        locked TINYINT NOT NULL DEFAULT 0,        readonly TINYINT NOT NULL DEFAULT 0,        neverclean TINYINT NOT NULL DEFAULT 0,        simplereg TINYINT NOT NULL DEFAULT 0,        regtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,        logintime TIMESTAMP DEFAULT '0000-00-00 00:00:00',        pwdtime TIMESTAMP DEFAULT '0000-00-00 00:00:00',        changetime TIMESTAMP DEFAULT '0000-00-00 00:00:00'        )
2017-08-08T20:41:18Z:error:database error: Invalid default value for 'logintime'
2017-08-08T20:41:18Z:error:plugin mysql failed to create a new database
Command failed: /opt/ejudge/libexec/ejudge/bin/ej-users -u ejudge -g ejudge --convert --from-plugin xml --to-plugin mysql
Машина и mysql:

Code: Select all

mysql --version
mysql  Ver 15.1 Distrib 10.1.25-MariaDB, for Linux (i686) using readline 5.1

Code: Select all

uname -a
Linux isengard.1586.su 4.11.11-300.fc26.i686 #1 SMP Mon Jul 17 17:15:00 UTC 2017 i686 i686 i386 GNU/Linux

Code: Select all

cat /etc/fedora-release 
Fedora release 26 (Twenty Six)
Строчка для configure:

Code: Select all

cat local-configure 
#!/bin/sh -x

exec ./configure --prefix=/opt/ejudge  --enable-charset=utf-8 --with-httpd-cgi-bin-dir=/var/www/cgi-bin --with-httpd-htdocs-dir=/var/www/html --enable-ajax --enable-local-dir=/var/lib/ejudge --enable-werror --enable-hidden-server-bins "$@" --with-rest
Last edited by lariliel on 09 August 2017, 00:27, edited 2 times in total.

lariliel
Posts:10
Joined:09 November 2012, 15:40
Contact:

Re: Ошибка установки версии 3.6.4 при создании базы данных

Post by lariliel » 09 August 2017, 00:24

Как я понимаю, ветка master с момента вашего последнего сообщения оформилась как версия 3.6.5 и смысла пробовать её большого нет.
Попробовал собрать ветку dev из git, но та же проблема:

Code: Select all

mysql: CREATE TABLE IF NOT EXISTS config         (config_key VARCHAR(64) NOT NULL PRIMARY KEY COLLATE utf8_bin,        config_val VARCHAR(64)        )
mysql: CREATE TABLE logins        (user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,        login VARCHAR(64) NOT NULL UNIQUE KEY COLLATE utf8_bin,        email VARCHAR(128),        pwdmethod TINYINT NOT NULL DEFAULT 0,        password VARCHAR(128),        privileged TINYINT NOT NULL DEFAULT 0,        invisible TINYINT NOT NULL DEFAULT 0,        banned TINYINT NOT NULL DEFAULT 0,        locked TINYINT NOT NULL DEFAULT 0,        readonly TINYINT NOT NULL DEFAULT 0,        neverclean TINYINT NOT NULL DEFAULT 0,        simplereg TINYINT NOT NULL DEFAULT 0,        regtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,        logintime TIMESTAMP DEFAULT '0000-00-00 00:00:00',        pwdtime TIMESTAMP DEFAULT '0000-00-00 00:00:00',        changetime TIMESTAMP DEFAULT '0000-00-00 00:00:00'        )
2017-08-08T21:22:13Z:error:database error: Invalid default value for 'logintime'
2017-08-08T21:22:13Z:error:plugin mysql failed to create a new database
Command failed: /opt/ejudge/libexec/ejudge/bin/ej-users -u ejudge -g ejudge --convert --from-plugin xml --to-plugin mysql
Достаточно странно, но минимальное время, которое принимает мой сервер в качестве стандартного для TIMESTAMP, равно '1970-01-01 03:00:01'.
Если переписать запрос как

Code: Select all

CREATE TABLE logins (user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, login VARCHAR(64) NOT NULL UNIQUE KEY COLLATE utf8_bin, email VARCHAR(128), pwdmethod TINYINT NOT NULL DEFAULT 0, password VARCHAR(128), privileged TINYINT NOT NULL DEFAULT 0, invisible TINYINT NOT NULL DEFAULT 0, banned TINYINT NOT NULL DEFAULT 0, locked TINYINT NOT NULL DEFAULT 0, readonly TINYINT NOT NULL DEFAULT 0, neverclean TINYINT NOT NULL DEFAULT 0, simplereg TINYINT NOT NULL DEFAULT 0, regtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP, logintime TIMESTAMP DEFAULT '1970-01-01 03:00:01', pwdtime TIMESTAMP DEFAULT '1970-01-01 03:00:01', changetime TIMESTAMP DEFAULT '1970-01-01 03:00:01' )
то он будет успешно выполнен.
Скорей всего сдвиг связан с локальным временем сервера, настроенным в зоне MSK +3:

Code: Select all

date
Wed Aug  9 00:37:20 MSK 2017

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Ошибка установки версии 3.6.4 при создании базы данных

Post by cher » 17 August 2017, 19:05

Ок. Я проверю на последней федоре.

lariliel
Posts:10
Joined:09 November 2012, 15:40
Contact:

Re: Ошибка установки версии 3.6.4 при создании базы данных

Post by lariliel » 17 November 2017, 16:41

Версия 3.7.3

Code: Select all

mysql: ALTER DATABASE %ejudgeDB% DEFAULT CHARACTER SET 'utf8' ;

mysql: CREATE TABLE IF NOT EXISTS config         (config_key VARCHAR(64) NOT NULL PRIMARY KEY COLLATE utf8_bin,        config_val VARCHAR(64)        )
mysql: CREATE TABLE logins        (user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,        login VARCHAR(64) NOT NULL UNIQUE KEY COLLATE utf8_bin,        email VARCHAR(128),        pwdmethod TINYINT NOT NULL DEFAULT 0,        password VARCHAR(128),        privileged TINYINT NOT NULL DEFAULT 0,        invisible TINYINT NOT NULL DEFAULT 0,        banned TINYINT NOT NULL DEFAULT 0,        locked TINYINT NOT NULL DEFAULT 0,        readonly TINYINT NOT NULL DEFAULT 0,        neverclean TINYINT NOT NULL DEFAULT 0,        simplereg TINYINT NOT NULL DEFAULT 0,        regtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,        logintime TIMESTAMP DEFAULT '0000-00-00 00:00:00',        pwdtime TIMESTAMP DEFAULT '0000-00-00 00:00:00',        changetime TIMESTAMP DEFAULT '0000-00-00 00:00:00'        )
2017-11-17T13:40:58Z:error:database error: Invalid default value for 'logintime'
2017-11-17T13:40:58Z:error:plugin mysql failed to create a new database

Post Reply