CentOS definem a mesma data e fuso horário para o sistema e o MySQL

0

Eu estava vendo que minhas gotículas têm um fuso horário diferente entre o sistema operacional e o MySQL. Por padrão, configurei todos os vms para o fuso horário brasileiro (America / Sao_Paulo) através de tzselect e, assumindo que o MySQL vem usando o fuso horário padrão do sistema.

Então, quando eu digito para o timestamp atual, eu recebo isso do CentOS:

date

Thu Jun  9 09:43:03 BRT 2016

e do MySQL:

mysql> select current_timestamp;
+---------------------+
| current_timestamp   |
+---------------------+
| 2016-06-09 12:45:57 |
+---------------------+
1 row in set (0.00 sec)

mysql>

Lendo documentos do MySQL 5.5 , tenho a opção de usar o fuso horário como string, como 'America/Sao_Paulo' por exemplo, no entanto, o CentOS 6.5 vem com o MySQL 5.1, e ele não tem a mesma opção , usando apenas horas, como +3: 00 ... Eu tenho certeza que eu não deveria me preocupar com data / hora do MySQL desde que eu configurei no sistema.

Configurações do CentOS para fuso horário que fiz:

Eu usei o comando tzselect para definir o fuso horário brasileiro, pensando que o MySQL assumirá essa configuração. Após a reinicialização, percebo que o sistema apaga minhas configurações no tzselect, para evitar isso, coloco essa linha em /etc/rc.local :

ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime

Mesmo que isso configure, percebo que alguns vms são como UTC e outros com BRT ... e neste momento, eu realmente não sei como configurarei todos os meus servidores, pelo menos 40 máquinas, com o mesmo caminho.

Alguém pode me ajudar a explicar como posso definir corretamente o fuso horário para o sistema a também para o MySQL?

Informações adicionais

Sistema: CentOS 6.5 x64 MySQL: 5.1 (padrão)

Abaixo, o comando solicitado por @lese:

mysql> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM             | SYSTEM              |
+--------------------+---------------------+
1 row in set (0.00 sec)

mysql> select current_timestamp;
+---------------------+
| current_timestamp   |
+---------------------+
| 2016-06-09 14:31:19 |
+---------------------+
1 row in set (0.00 sec)

mysql> exit
Bye

$ date
Thu Jun  9 11:31:22 BRT 2016

E hora da máquina em /etc/sysconfig/clock file:

[root@xxxx]# cat /etc/sysconfig/clock
ZONE=Etc/UTC

Atenciosamente.

    
por Carlos Spohr 09.06.2016 / 15:04

1 resposta

2

Eu encontrei o problema,

Eu usei tzselect para selecionar meu fuso horário, no entanto, o / etc / sysconfig / clock estava com ZONE=America/New_York , causando um pequeno erro no sistema e aplicativos que consumiam informações de data / hora do sistema. Para consertá-lo e manter o bios clock sincronizado com o relógio do sistema, execute estas etapas:

sudo vim /etc/sysconfig/clock

ZONE="America/Sao_Paulo"
UTC=true
ARC=false

Em seguida, reinicie o sistema.

sudo reboot

Remova os parâmetros de fuso horário desnecessários, como default_time_zone , de /etc/my.cnf (este para o CentOS) ou /etc/mysql/my.cnf (para o SO baseado no Ubuntu).

Em seguida, reinicie a instância do servidor MySQL:

sudo /etc/init.d/mysqld restart

E, finalmente, para verificar se todas as configurações estão corretas, use estes comandos:

mysql> select current_timestamp;
+---------------------+
| current_timestamp   |
+---------------------+
| 2016-06-09 15:18:32 |
+---------------------+
1 row in set (0.00 sec)

mysql> exit
Bye
[carlos@xxxx-setup ~]$ date
Thu Jun  9 15:18:34 BRT 2016
[carlos@xxx-setup ~]$

Obrigado @lese pela sua atenção.

    
por 09.06.2016 / 20:20