Este apéndice es una traducción del manual de MySQL.
Antes de MySQL 4.1.3, se puede cambiar el huso horario para
el servidor con la opción --timezone=timezone_name de mysqld_safe. También
se puede cambiar mediante la variable de entorno TZ antes de
arrancar mysqld.
Los valores permitidos para --timezone o TZ son dependientes
del sistema. Hay que consultar la documentación del sistema operativo para ver
qué valores son válidos.
A partir de MySQL 4.1.3, el servidor mantiene ciertos
valores de huso horario:
El huso horario del sistema. Cuando el servidor arranca,
intenta determinar el huso horario del ordenador cliente y lo usa para asignar
el valor de la variable de sistema system_time_zone.
El huso horario actual del servidor. La variable global de
sistema time_zone system indica el huso horario del servidor actual en el que
se está operando. El valor iniciale es 'SYSTEM', que indica que el huso horario
del servidor es wl mismo que el del sistema. El valor inicial puede ser
especificado explícitamente con la opción --default-time-zone=timezone. Si se
posee el privilegio SUPER, se puede asignar el valor global durante la
ejecución con la sentencia:
mysql> SET GLOBAL time_zone = timezone;
Husos horarios por conexión. Cada cliente que se conecta
tiene su propio huso horario asignado, dado por la variable de sesión
time_zone. Inicialmente su valor es el mismo que el de la variable global
time_zone, pero se puede modificar con esta sentencia:
mysql> SET time_zone = timezone;
Los valores actuales de los husos horarios global y por
conexión pueden ser recuperados de este modo:
mysql> SELECT @@global.time_zone,
@@session.time_zone;
Los valores timezone pueden ser dados como cadenas
que indiquen un desplazamiento a partir de UTC, como por ejemplo '+10:00' o
'-6:00'. Si las tablas de tiempo relacionadas con husos horarios de la base de
datos mysql han sido creados y asignados, se puedem usar también nombres de
husos horarios, como por ejemplo 'Europe/Helsinki', 'US/Eastern' o 'MET'. El
valor 'SYSTEM' indica que el huso horario debe ser el mismo que el del systema.
Los nombres de husos horarios no son sensibles al tipo de carácter.
El proceso de instalación de MySQL crea las tablas
de husos horarios en la base de datos mysql, pero no las carga. Esto se debe
hacer de forma manual. (Si se está actualizando a MySQL 4.1.3 o superior desde
una versión anterior, se deben crear las tablas mediante una actualización de
la base de datos mysql.
Si el sistema tiene su propia base de datos de información
horaria (el conjunto de ficheros que describen los husos horarios), se debe
usar el programa mysql_tzinfo_to_sql para llenar las tablas de husos horarios.
Ejemplos de tales sistemas son Linux, FreeBSD, Sun
Solaris y Mac OS X. Una localización probable de estos ficheros es el
directorio '/usr/share/zoneinfo'. Si el sistema no tiene una base de datos de
husos horarios, se puede usar el paquete descargable descrito más abajo.
El programa mysql_tzinfo_to_sql se usa para cargar los
valores de las tablas de husos horarios. En la línea de comandos, hay que pasar
el nombre de la ruta del directorio con la información de husos horarios a mysql_tzinfo_to_sql
y enviar 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 ficheros de husos horarios del
sistema y genera sentencias SQL a partir de ellos. mysql procesa esas
sentencias para cargar las tablas de husos horarios.
mysql_tzinfo_to_sql también se usa para cargar un único
fichero de huso horario, y para generar información adicional.
Para cargar un fichero tz_file que corresponda a un huso
horario llamado tz_name, hay que invocar a mysql_tzinfo_to_sql de este modo:
shell> mysql_tzinfo_to_sql tz_file tz_name | mysql
-u root mysql
Si el huso horario precisa tener en cuenta intervalos de
segundos, hay que inicializar la información de intervalo de segundos de este
modo, donde tz_file e el nombre del fichero:
shell> mysql_tzinfo_to_sql --leap tz_file | mysql
-u root mysql
Si el sistema no tiene base de datos de husos horarios (por
ejemplo, Windows o HP-UX), se puede usar el paquete de tablas de
husos horarios prediseñadas que está disponible para su descarga en http://dev.mysql.com/downloads/timezones.html.
Este paquete contiene los ficheros '.frm', '.MYD' y '.MYI' para las tablas de
husos horarios MyISAM. Estas tablas deben pertenecer a la base de datos
mysql, de modo que deben colocarse esos ficheros en el subdirectirio 'mysql' de
directorio de datos del servidor MySQL. El servidor debe ser detenido mientras
se hace esto.
¡Cuidado! no usar el paquete descargable si el sistema tiene
una base de datos de husos horarios. Usar la utilidad mysql_tzinfo_to_sql en su
lugar. En caso contrario, se puede provocar una diferencia en la manipulación
de tiempos entre MySQL y otras aplicaciones del sistema.
No hay comentarios:
Publicar un comentario