Web hosting

 

El servidor MySQL mantiene varias configuraciones de zona horaria:

Cuando se inicia el servidor, intenta determinar la zona horaria de la máquina host y la usa para establecer la variable del sistema system_time_zone . El valor no cambia después de eso.

Puede configurar la zona horaria del sistema para el servidor MySQL al inicio con la opción –timezone= timezone_name

La time_zone  indica la zona horaria en la que el servidor está operando actualmente. El valor inicial para time_zone es ‘SYSTEM’ , que indica que la zona horaria del servidor es la misma que la zona horaria del sistema.

La time_zone la podemos ver de la siguiente forma luego de iniciar sesión en mysql:

                                                                                                  mysql> SELECT @@global.time_zone;

+—————————+

| @@global.time_zone    |

+—————————+

|            SYSTEM               |

+—————————+

                                                                                                               1 row in set (0,00 sec)

En este caso vemos que la time_zone la esta tomando desde el sistema operativo anfitrión.

Para visualizar la hora y fecha lo hacemos de la siguiente manera:

mysql> SELECT NOW();

+————————+

|                 NOW()         |

+————————+

| 2018-05-10 16:56:50|

+————————+

1 row in set (0,00 sec)

 

Si a pesar de que este tomando la time_zone desde el sistema operativo y la fecha y hora no coinciden, es posible que hayan sido modificadas en el sistema operativo y para que se sincronice necesitamos reiniciar el servicio de mysql:

#systemctl restart mysqld

El valor de la zona horaria del servidor global inicial se puede especificar explícitamente al inicio con la –default-time-zone= timezone en la línea de comandos, o puede usar la siguiente línea en un archivo de opciones:

default-time-zone=’ timezone ‘

Si tiene el privilegio SYSTEM_VARIABLES_ADMIN o SUPER , puede establecer el valor de la zona horaria del servidor global en tiempo de ejecución con esta instrucción:

mysql> SET GLOBAL time_zone = timezone ;

Zonas horarias por conexión. Cada cliente que se conecta tiene su propia configuración de zona horaria, dada por la sesión time_zone variable. Inicialmente, la variable de sesión toma su valor de la variable global time_zone , pero el cliente puede cambiar su propia zona horaria con esta declaración:

mysql> SET time_zone = timezone ;

La configuración de la zona horaria de la sesión actual afecta la visualización y el almacenamiento de los valores de tiempo que son sensibles a la zona. Esto incluye los valores mostrados por funciones como NOW() o CURTIME() , y los valores almacenados y recuperados de las columnas TIMESTAMP . Los valores para las columnas TIMESTAMP se convierten de la zona horaria actual a UTC para el almacenamiento, y de UTC a la zona horaria actual para la recuperación.

La configuración actual de la zona horaria no afecta los valores mostrados por funciones tales como UTC_TIMESTAMP() o valores en las columnas DATE , TIME o DATETIME . Tampoco se almacenan valores en esos tipos de datos en UTC; la zona horaria se aplica solo cuando se convierten desde valores TIMESTAMP . Si desea una aritmética específica de la configuración regional para los valores de DATE , TIME o DATETIME , conviértalos a UTC, realice la aritmética y luego convierta de nuevo.

Los valores actuales de las zonas horarias globales y específicas del cliente se pueden recuperar de esta manera:

mysql> SELECT @@global.time_zone, @@session.time_zone;

+——————–+————————————+

|   @@global.time_zone | @@session.time_zone   |

+——————–+————————————+

|                               SYSTEM | SYSTEM                        |

+——————–+————————————+

1 row in set (0,00 sec)

Poblar las tablas de zona horaria

Si su sistema tiene su propia base de datos zoneinfo (el conjunto de archivos que describe las zonas horarias), debe usar el programa mysql_tzinfo_to_sql para llenar las tablas de zonas horarias. Ejemplos de tales sistemas son Linux, FreeBSD, Solaris y OS X. Una posible ubicación para estos archivos es el directorio /usr/share/zoneinfo

El programa mysql_tzinfo_to_sql se usa para cargar las tablas de zona horaria. En la línea de comando, pase el nombre de la ruta del directorio zoneinfo a mysql_tzinfo_to_sql y envíe la salida al programa mysql . Por ejemplo:

 

shell> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

mysql_tzinfo_to_sql lee los archivos de zona horaria de su sistema y genera declaraciones SQL de ellos. mysql procesa esas declaraciones para cargar las tablas de zona horaria.

mysql_tzinfo_to_sql también se puede usar para cargar un único archivo de zona horaria o para generar información de segundo intercalar :

Para cargar un solo archivo de zona horaria tz_file que corresponde a un nombre de zona horaria tz_name , invoque mysql_tzinfo_to_sql de la siguiente manera:

shell> mysql_tzinfo_to_sql tz_file tz_name | mysql -u root mysql

Con este enfoque, debe ejecutar un comando por separado para cargar el archivo de zona horaria para cada zona nombrada que el servidor necesita conocer.

Después de ejecutar mysql_tzinfo_to_sql , lo mejor es reiniciar el servidor para que no continúe utilizando datos de zona horaria almacenados previamente en la memoria caché.

Fuente:

https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html

 

 

Yo no pago nada por el alojamiento de esta página, si también quieres alojar gratis tu página pulsa en el siguiente banner:

Web hosting