Problemas
X columnas no son compatibles con el uso de zonas horarias
En la página principal de GLPI 9.5 aparece la advertencia:
X las columnas no son compatibles con el uso de zonas horarias
No se permite el acceso a la base de datos de zona horaria (MySQL)
En el perfil de los usuarios de una instalación nueva o actualizada a GLPI 9.5 muestra el siguiente mensaje de advertencia:
No se permite el acceso a la base de datos de zona horaria (MySQL).
Explicación
Ambos errores tienen el mismo origen. A partir de la versión 9.5 de GLPI los campos de fecha de base de datos dejan de ser DATETIME para convertirse en TIMEZONE. Para instalaciones en las que se trabaje en varias zonas horarias esta es una gran mejora, dado que cada usuario recibirá las horas en función de la configuración de su perfil, independientemente de la hora del sistema/base de datos.
Este cambio no se produce de manera automática, y en el caso de las actualizaciones habrá que realizar una migración de todos los campos DATETIME a TIMEZONE.
Solución
[box type=»warning»] Realiza un backup completo de tu máquina antes de realizar cualquier modificación.[/box]
Solución basada en documentación oficial de GLPI: https://glpi-install.readthedocs.io/en/develop/timezones.html
Inicializar las zonas horarias de tu base de datos
Tendrás que inicializar los datos de las zonas horarias de tu sistema, para esto ejecuta el siguiente comando con el usuario root de MariaDB:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -p -u root mysql
Establecer una zona horaria
No es indispensable, pero si una buena práctica.
Edita el archivo de configuración:
vim /etc/mysql/my.cnf
(la ruta depende del sistema operativo) y añade a [mysqld] la zona horaria por defecto:
default-time-zone = 'Europe/Madrid'
(en este ejemplo Europe/Madrid)
Reiniciar el servicio
Reinicia el servicio:
systemctl restart mariadb
Dar permisos al usuario de GLPI
El usuario de la base de datos de GLPi debe tener acceso de lectura en la tabla mysql.time_zone_name. Suponiendo que el usuario de GLPi es glpi@localhost, ejecuta los siguientes comandos:
mysql -u root -p
GRANT SELECT ON `mysql`.`time_zone_name` TO 'glpi'@'localhost'; FLUSH PRIVILEGES;
Migración
Migrar las bases de datos existentes a la nueva zona horaria, escribe el siguiente comando: bin/console glpi:migration:timestamps
Resultado
El usuario ya puede establecer zonas horarias y ambos mensajes han desaparecido.
Deja una respuesta