mysql> SELECT @@global.time_zone,@@session.time_zone,NOW();
La primera columna es el time_zone de nuestro servidor y el segundo el de nuestra conexión. La tercera columna de la fecha y hora actuales de acuerdo con el valor de timezone de nuestra conexión (si, la 2ª columna)
Para poder modificarla según el manual online de mysql basta con ejecutar:
mysql> SET time_zone = timezone;
Siendo timezone una cadena que se debe corresponder con una zona horaria instalada en nuestro sistema. Sin embargo si ejecutas esta consulta es muy probable que te de un error, diciendo que desconoce esta zona horaria.
Por ejemplo
mysql> SET time_zone = 'UTC';
1298 Unknown or incorrect time zone: 'UTC'
Como es esto posible, ¿mysql no sabe nada sobre esta zona horaria universal?. En mi sistema GNU/Linux (Debian). Las zonas horarias están a modo de archivo (filosofía UNIX) en /usr/share/zoneinfo. Y de un rápido vistazo se puede ver que, como no, UTC es una de las zonas horarias definidas.
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
¡Además sería preciso ejecutar periódicamente esta instrucción pues las zonas horarias pueden sufrir modificaciones!
Después de hacer esto ya podriamos ejecutar
mysql> SET time_zone = 'UTC';
Query OK, 0 rows affected (0.00 sec)
Ahora si que podemos ejecutar
mysql> SELECT @@global.time_zone,@@session.time_zone,NOW()\G
************************** 1. row **************************
@@global.time_zone: SYSTEM
@@session.time_zone: UTC
NOW(): 2010-05-24 15:24:31
1 row in set (0.00 sec)
Y podemos comprobar que la hora se ha modificado con la zona horaria seleccionada. Recuerda que esto es por conexión o sea que cuando vuelvas a conectarte a tu servidor mysql verás nuevamente la hora de la zona horaria del sistema
Para cambiar esto y tener de manera global esta configuración de zona horaria habría que arrancar el servidor mysql con la opción --default_timezone=timezone_name de mysqld_safe.
El servidor mysql también almacena además de las dos zonas horarias que comentamos (global y por conexión) la zona horaria del servidor donde se aloja. Lo almacena en la variable system_time_zone. También puedes modificar esto con la opción --timezone=timezone_name de mysqld_safe o con la variable de entorno TZ antes de lanzar el servidor myql. O en el archivo de configuración de mysql introducir la siguiente linea:
default-time-zone='timezone'
Ya en tiempo de ejecución puedes modificar la zona horaria global del servidor. Pero si reinicias el servidor perdería estos cambios. Basta ejecutar con el usuario root la siguiente consulta:
mysql> SET GLOBAL time_zone = timezone;





27/05/10 20:26:20
PingBack
27/05/10 20:26:26
PingBack