miércoles, 25 de mayo de 2016

Cambiar la zona horaria en MySQL

Con la siguiente sentencias podrás consultar la zona horaria:

1
mysql> SELECT @@global.time_zone, @@session.time_zone, TIMEDIFF(NOW(), UTC_TIMESTAMP);

Para cambiarla, puedes hacerlo con o sin reinicio del servidor MySQL. Aquí te dejo los pasos para cada una de las opciones:


Opción 1: Con reinicio del servicio

Es necesario editar el archivo "/etc/my.cnf"

Agrega o modifica la línea:

default-time-zone = '-04:00'

Luego reinicia el servicio:

$ service mysql restart



Opción 2: Sin reiniciar el servicio

En este caso puedes cambiar la zona horaria para que aplique a nivel global o solo para la sesión actual en la que estás (osea, se te desconectar y vuelves a entrear, se perderá la zona horaria elegida anteriormente)

Si el cambio lo quieres hacer global, la sentencia debe ser la siguiente:

1
mysql> SET GLOBAL time_zone = '-04:00';


En cambio, si quieres que solo aplique a la sesión actual, la sentencia debe ser esta:

1
mysql> SET time_zone = '-04:00';



Bonus (Linux):

Si se te complica utilizar números para especificar la zona horaria y te sientes más cómodo o familiarizado con los nombres, puedes agregarlos a MySQL muy fácilmente si estás trabajando en GNU/Linux (supongo que para Windows será igualmente fácil pero yo no entro ahí). Tan solo ejecuta el siguiente comando en la shell:

$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot -p mysql

Con esto ya puedes realizar los cambios de la zonas horarias de la siguiente forma:

1
mysql> SET time_zone='America/Santiago';
o
1
mysql> SET GLOBAL time_zone='America/Santiago';

* Puede que requiera reinicio del servicio para para refrescar data en cache de antiguas zonas horarias (en caso de existir).

No hay comentarios: