Modificando la zona horaria a mysql (local timezone)

change mysql timezone
change mysql timezone

En Qbit Mexhico, tenemos nuevo servidor con linux, el cual es necesario configurar desde los fierros.. y aunque la mayoría de cosas que instalamos no requieren mucha configuración, algunas otras sí y ese es el caso del timezone de mysql.

En esta ocasión reconfiguramos el timezone a nuestro servidor mediante el comando dpkg-reconfigure

sudo dpkg-reconfigure tzdata

Luego nos conectamos al servidor de mysql y haciendo la consulta “SELECT NOW();” debería ver algo como:

mysql> SELECT NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2015-02-09 11:32:39 |
+---------------------+
1 row in set (0.00 sec)

Si notan que la fecha y hora no coinciden con su hora local, entonces algo con el timezone está mal, nuevamente pueden hacer otra consulta para verificar que timezone se está utilizando:

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

Sorpresa, dice que se está utilizando el timezone del sistema (ósea que debería estar bien porque lo acabo de configurar).. entonces ya para corregirlo lo que se necesita hacer es modificar el timezone de la tabla mysql y setear a mano el valor que desean, para nuestro caso lo definimos con la zona horaria de la Ciudad de México, entonces:

mysql> SET GLOBAL time_zone = "America/Mexico_City";
Query OK, 0 rows affected (0.00 sec)

Luego de esto deben de hacer un sudo service mysql restart y si revisan la zona horaria mediante las consultas descritas aquí arriba, la hora del sistema y la hora de mysql deben coincidir con la hora local, si no están seguros de como escribir su zona horaria, pueden hacer una búsqueda utilizando esta consulta.

mysql> SELECT * FROM mysql.time_zone_name WHERE Name LIKE '%exico%';
+---------------------------+--------------+
| Name                      | Time_zone_id |
+---------------------------+--------------+
| America/Mexico_City       |          160 |
| Mexico/BajaNorte          |          508 |
| Mexico/BajaSur            |          509 |
| Mexico/General            |          510 |
...
+---------------------------+--------------+
12 rows in set (0.00 sec)

Y espero que con esto se corriga el problema, de no ser así, tendrán que continuar investigando.. claro, si encuentran la solución, pasen a dejar su comentario.

La información completa de estos comandos y como utilizarlos la encontrarán directamente desde la página de mysql en http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html

Happy Coding!

Co-fundador de Qbit Mexhico, usuario de linux, Developer en tecnologías web.. Nicaragüense, centro en basketball, primer centro en rugby y pintor los fines de semana. Ortögrafo y ambientalista psicológico (de escritorio).. ese soy yo!

Si te ha servido compártelo y difunde nuestro blog..

Twitter LinkedIn Flickr YouTube 

4 thoughts on “Modificando la zona horaria a mysql (local timezone)

  1. Gracias por tu ayuda! Me sirvió, pero realmente no hace falta configurar la zona horaria de MySQL si ya está con SYSTEM. Si cambias la del sistema con el comando que indicas, y luego reinicias mysql, lee la hora correcta.

    Gracias y saludos

  2. Gracias andaba buscando algunas cosas de MySQL y vi tu Post, es interesante cambiar la zona horaria a tu server, yo en particular en los proyectos he usado UTC Cero para no entrar en conflicto con el horario de cada usuario y más cuando son usuario de diferentes zonas.
    Pero me has dado una idea, gracias y exito!!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *