Problema

X columnas non son compatibles co uso de zonas horarias

Na páxina principal de GLPI 9.5 aparece a advertencia:

X columnas non son compatibles co uso de zonas horarias

columns are not compatible with timezones usage

Non se permite o acceso á base de datos de zona horaria (MySQL)

No perfil dos usuarios dunha instalación nova ou actualizada a GLPI 9.5 mostra a seguinte mensaxe de advertencia:

Non se permite o acceso á base de datos de zona horaria (MySQL).

Access to timezone database mysql) is not allowed

Explicación

A partir da versión 9.5 de GLPI os campos de data da base de datos deixan de ser DATETIME para converterse en TIMEZONE. Para instalacións nas que se traballe en varias zonas horarias esta é unha gran mellora, dado que cada usuario recibirá as horas en función da configuración do seu perfil, independentemente da hora do sistema/base de datos.

Este cambio non se produce de maneira automática, e no caso das actualizacións haberá que realizar unha migración de todos os campos DATETIME a TIMEZONE.

Solución

Configurar MariaDB

Terás que inicializar os datos das zonas horarias das zonas horarias do teu sistema, para isto executa o seguinte comando co usuario root de MariaDB:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -p -u root mysql

Establecer unha zona horaria

Edita o arquivo de configuración:

vim /etc/mysql/my.cnf

(a ruta depende do sistema operativo) engade a [ mysqld] a zona horaria por defecto:

default-time-zone = 'Europe/Madrid'

(neste exemplo Europe/Madrid)

->  Actualtime 2 para GLPI 10

MySQL timezone setup

Reinicia o servizo

Reinicia o servizo:

systemctl restart mariadb

Fornecer privilexios ao usuario de DB de GLPI

O usuario da base de datos de GLPi debe ter acceso de lectura na táboa mysql.time_ zone_ name . Supoñendo que o usuario de GLPi é [email protected], executa os seguintes comandos:

mysql -u root -p
GRANT SELECT ON `mysql`.`time_zone_name` TO 'glpi'@'localhost';
FLUSH PRIVILEGES;

Migración

Migrar as bases de datos existentes á nova zona horaria, escribe o seguinte comando: bin/console glpi:migration:timestamps

timezone migration

Resultado

O usuario xa pode establecer zonas horarias e xa non se amosan adventencias deste tipo.