Como carregar tabelas de fuso horário

Resumo : neste tutorial, você aprenderá como carregar dados de fuso horário nas tabelas de fuso horário no servidor MySQL no Windows, macOS e Linux.

Carregar tabelas de fuso horário no MySQL é crucial para o tratamento preciso de informações de data e hora, especialmente ao lidar com aplicações globais.

O mysqlbanco de dados do sistema compreende tabelas projetadas para armazenar dados relacionados ao fuso horário. No entanto, essas tabelas não contêm dados por padrão.

Para fazer com que algumas das funções relacionadas à data e hora que lidam com o fuso horário funcionem corretamente, você precisa carregar manualmente os dados do fuso horário nessas tabelas.

Verificando tabelas de fuso horário

Primeiro, abra o prompt de comando no Windows ou o terminal no macOS e Linux.

Em seguida, conecte-se ao servidor MySQL usando o mysqlprograma:

mysql -u root -p

Em seguida, mude o banco de dados atual para mysql:

use mysql;Linguagem de código:  PHP  ( php )

Depois disso, mostre as tabelas de fuso horário:

show tables like 'time_zone%';Linguagem de código:  JavaScript  ( javascript )

Saída:

+------------------------------+
| Tables_in_mysql (time_zone%) |
+------------------------------+
| time_zone                    |
| time_zone_leap_second        |
| time_zone_name               |
| time_zone_transition         |
| time_zone_transition_type    |
+------------------------------+
5 rows in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

Finalmente, recupere os dados da time_zone_nametabela:

select * from time_zone_name;Linguagem de código:  JavaScript  ( javascript )

Saída:

Empty set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

Carregando dados de fuso horário no Windows

Primeiro, baixe o pacote de fuso horário aqui .

Segundo, extraia o arquivo zip baixado para um diretório, por exemplo, C:\temp\tz. O tzdiretório inclui o timezone_posix.sqlarquivo.

Terceiro, abra o prompt de comando e conecte-se ao servidor MySQL:

mysql -u root -p

Quarto, mude o banco de dados atual para mysql:

use mysql;Linguagem de código:  PHP  ( php )

Quinto, carregue os dados de fuso horário nas tabelas de fuso horário usando o sourcecomando:

source c:\temp\tz\timezone_posix.sqlLinguagem de código:  CSS  ( css )

Observe que você precisa substituir o caminho pelo timezone_posix.sqlseu caminho.

O sourcecomando executará as instruções SQL no arquivo timezone_posix.sqlpara inserir dados nas tabelas de fuso horário.

Sexto, verifique a time_zonetabela:

select count(*) from time_zone;Linguagem de código:  JavaScript  ( javascript )

Mostrará 597 linhas, o que corresponde a 597 fusos horários.

Finalmente, reinicie o servidor MySQL para aplicar os novos fusos horários:

net stop mysql
net start mysql

Observe que você precisa substituir pelo mysqlnome real do serviço MySQL.

Carregando dados de fuso horário no macOS e Linux

macOS e Linux vêm com dados de fuso horário integrados armazenados no /usr/share/zoneinfodiretório.

Para carregar esses dados de fuso horário no MySQL, você usa o mysql_tzinfo_to_sqlprograma utilitário que vem por padrão com a instalação do MySQL.

Para carregar as tabelas de fuso horário, siga estas etapas:

Primeiro, abra o terminal.

Em seguida, execute o seguinte comando:

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

Ele solicitará que você insira uma senha para a rootconta e comece a carregar os fusos horários.

Em seguida, conecte-se ao servidor MySQL:

mysql -u root -p

Depois disso, mude o banco de dados atual para o mysqlbanco de dados do sistema:

use mysql;Linguagem de código:  PHP  ( php )

Finalmente, recupere os dados da time_zonetabela:

select count(*) from time_zone;Linguagem de código:  JavaScript  ( javascript )

Saída:

+----------+
| count(*) |
+----------+
|      1793|
+----------+
1 row in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

Ele retorna 1793 fusos horários.

Resumo

  • Use o sourcecomando para carregar dados de fuso horário do pacote de fuso horário fornecido.
  • Use o mysql_tzinfo_to_sqlprograma utilitário para carregar dados de fuso horário nas tabelas de fuso horário no banco de dados MySQL.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *