Resolver problemas
Erro de fusos horários do GLPI com MariaDB ou MySQL
Se, ao atualizar ou instalar o GLPI, vir a seguinte mensagem durante a verificação de requisitos:
Datos de la zona horaria de la base de datos Activar el uso de zonas horarias. Las zonas horarias no parecen estar cargadas
O aviso confirma que o GLPI não consegue ativar os fusos horários, mas é a versão do GLPI que determina se falta apenas carregar os dados ou também uma permissão.
Porque ocorre este erro
O GLPI 9.5 incorporou o uso de TIMESTAMP para trabalhar com fusos horários. Em todos os casos, o MariaDB ou o MySQL tem de ter carregadas as suas tabelas de fusos horários.
- GLPI 10.0.20 ou posterior: não precisa de acesso do utilizador da aplicação a
mysql.time_zone_name. - GLPI anterior à 10.0.20: além dos dados carregados, precisa de
SELECTsobremysql.time_zone_name.
Porque não o pode resolver sozinho
Num alojamento partilhado, a tabela mysql.time_zone_name pertence ao sistema da base de dados, não à sua conta. Isto significa que:
- Não tem permissões administrativas para carregar os fusos horários com
mariadb-tzinfo-to-sqlou o seu aliasmysql_tzinfo_to_sql. - Não pode executar
GRANTsobre tabelas do sistema se uma versão antiga do GLPI o exigir.
Estas operações exigem privilégios administrativos sobre o servidor de base de dados, não necessariamente uma conta chamada root.
Como resolver
Para que ativemos o suporte de fusos horários na sua instalação do GLPI:
- Aceda à área de cliente.
- Vá à secção Ajuda e abra um novo ticket.
- Indique que precisa de ativar o suporte de fusos horários no MariaDB/MySQL para o GLPI e inclua a versão do GLPI e o nome do seu utilizador da base de dados, que encontrará em
config/config_db.php. Não envie a palavra-passe.
A nossa equipa fará as configurações necessárias e avisá-lo-á quando estiver pronto para que possa continuar com a atualização.
Se atualizar a partir de uma versão antiga e o GLPI detetar colunas DATETIME, reveja também o comando oficial php bin/console glpi:migration:timestamps; pode ser uma migração longa e deve ser testada com uma cópia verificada.
Consulte a documentação oficial de fusos horários do GLPI. O MySQL limita TIMESTAMP a janeiro de 2038; o MariaDB alargou esse intervalo a partir da versão 11.5. Avalie o limite efetivo do servidor se a aplicação precisar de guardar datas posteriores.
Verificar após a intervenção
Volte a executar a verificação de requisitos com o mesmo PHP e a mesma ligação que o GLPI utiliza. Depois teste a visualização e a edição de uma data com o fuso esperado. Alterar o fuso no PHP não carrega as tabelas de fusos do MySQL nem conclui uma migração de colunas.
Se for pedida uma migração de timestamps, guarde o estado inicial e reveja a sua duração e o resultado num clone. Não execute o comando várias vezes em paralelo nem altere diretamente todas as colunas por SQL sem o procedimento dessa versão.
Também lhe pode ser útil
- Erro "Argument X passed OrderProductForViewing must be of the type string" Identifique o argumento e a linha exatos que entregam NULL ao visualizar uma encomenda do PrestaShop...
- Erro "Shop not found at line xxx in file classes/shop/Shop.php" Localize a origem de Shop not found revendo o URL pedido, shop_url e o âmbito de PS_SHOP_DEFAULT ant...
- PrestaShopException: diagnosticar Invalid address Localize a referência exata que provoca Invalid address e corrija apenas carrinhos sem encomenda, pr...
- PrestaShop: tamanho excessivo da tabela layered_filter_block Meça e limpe a cache da pesquisa por facetas, distinga o seu índice de preços e atualize o módulo an...
Algo não bate certo ou mudou? Diga-nos e revemos.