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 mysql
banco 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 mysql
programa:
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_name
tabela:
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 tz
diretório inclui o timezone_posix.sql
arquivo.
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 source
comando:
source c:\temp\tz\timezone_posix.sql
Linguagem de código: CSS ( css )
Observe que você precisa substituir o caminho pelo timezone_posix.sql
seu caminho.
O source
comando executará as instruções SQL no arquivo timezone_posix.sql
para inserir dados nas tabelas de fuso horário.
Sexto, verifique a time_zone
tabela:
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 mysql
nome 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/zoneinfo
diretório.
Para carregar esses dados de fuso horário no MySQL, você usa o mysql_tzinfo_to_sql
programa 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 root
conta 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 mysql
banco de dados do sistema:
use mysql;
Linguagem de código: PHP ( php )
Finalmente, recupere os dados da time_zone
tabela:
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
source
comando para carregar dados de fuso horário do pacote de fuso horário fornecido. - Use o
mysql_tzinfo_to_sql
programa utilitário para carregar dados de fuso horário nas tabelas de fuso horário no banco de dados MySQL.