En MySQL 5.0, el servidor mantiene varios ajustos de zonas horarias:
La zona horaria del sistema. Cuando el servidor se inicia,
intenta determinar la zona horaria de la máquina que lo
aloja y lo utiliza para establecer la variable de sistema
system_time_zone
.
La zona horaria del servidor. La variable global del sistema
time_zone
indica la zona horaria en que
el servidor está operando actualmente. El valor inicial es
'SYSTEM'
, que indica que la zona horaria
del servidor es la misma que la del sistema. El valor
inicial puede ser especificado explícitamente con la
opción
--default-time-zone=
.
Si tiene el privilegio timezone
SUPER
, puede
establecer el valor global durante la ejecución, con esta
sentencia:
mysql> SET GLOBAL time_zone = timezone
;
Zonas horarias por conexión. Cada cliente que se conecta
tiene su propio ajuste de zona horaria, otorgado por la
variable de sesión time_zone
.
Inicialmente esta es la misma que la variable global
time_zone
, pero puede reestablecerse con
esta sentencia:
mysql> SET time_zone = timezone
;
Los valores actuales de las zonas horarias globales y por conexión pueden consultarse así:
mysql> SELECT @@global.time_zone, @@session.time_zone;
Los valores de timezone
pueden darse
como cadenas de caracteres indicando una variación con respecto
a UTC, como por ejemplo '+10:00'
o
'-6:00'
. Si las tablas relativas a las zonas
horarias han sido creadas y rellenadas, también puede utilizar
zonas horarias por su nombre, como
'Europe/Helsinki'
,
'US/Eastern'
, o 'MET'
. El
valor 'SYSTEM'
indica que la zona horaria
debería ser la misma que la del sistema. Los nombres de zonas
horarias no distinguen capitalización
(mayúsculas/minúsculas).
El procedimiento de instalación de MySQL crea las tablas de
zonas horarias en la base de datos mysql
,
pero no las carga. Debe hacerlo usted manualmente. (Si está
actualizando a MySQL 4.1.3 o superior desde una versión
anterior, debe crear las tablas actualizando su base de datos
mysql
. Utilice las instrucciones que puede
encontrar en Sección 2.10.2, “Aumentar la versión de las tablas de privilegios”.)
Si su sistema tiene su propia base de datos de información de
zonas (el conjunto de archivos que describen zonas horarias),
debería utilizar el programa
mysql_tzinfo_to_sql para rellenar las tablas
de zonas horarias. Ejemplos de esos sistemas son algunos como
Linux, FreeBSD, Sun Solaris, y Mac OS X. Una localización
probable para estos ficheros es el directorio
/usr/share/zoneinfo
. Si su sistema no tiene
una base de datos de información de zonas, puede utilizar un
paquete descargable descrito más adelante en esta sección.
El programa mysql_tzinfo_to_sql se utiliza para cargar las tablas de zonas horarias. En la línea de comandos, pase la ruta del directorio de los archivos de información de zonas 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 sentencias SQL a partir de ellos. mysql procesa esas sentencias y las carga en las tablas de zona horaria.
mysql_tzinfo_to_sql también puede utilizarse para cargar un solo archivo de zona horaria.
Para cargar un solo archivo de zona horaria
tz_file
que corresponde a una zona
horaria tz_name
, invoque a
mysql_tzinfo_to_sql de esta manera:
shell> mysql_tzinfo_to_sqltz_file
tz_name
| mysql -u root mysql
Si su zona horaria necesita tener en cuenta segundos de
diferencia, inicialice la información sobre segundos de
diferencia de esta manera, donde
tz_file
es el nombre de su archivo de
zona horaria:
shell> mysql_tzinfo_to_sql --leap tz_file
| mysql -u root mysql
Si su sistema no tiene una base de datos de información de
zonas (por ejemplo, Windows o HP-UX), puede utilizar el paquete
preconfigurado de tablas de zonas horarias que está disponible
en
http://dev.mysql.com/downloads/timezones.html.
Este paquete contiene los archivos .frm
,
.MYD
, y .MYI
para las
tablas de zonas horarias MyISAM
. Estas tablas
deben pertenecer a la base de datos mysql
,
así que debe depositar los archivos en el subdirectorio
mysql
de su directorio de datos de MySQL.
Debería apagar el servidor mientras hace esto.
¡Cuidado! Por favor, no utilice el paquete descargable si su sistema ya tiene una base de datos de información de zonas. Utilice en cambio la utilidad mysql_tzinfo_to_sql. Si no es así, podría causar una diferencia en el manejo de fechas entre MySQL y otras aplicaciones de su sistema.
Para información sobre los ajustes de zonas horarias en configuraciones de replicación consulte Sección 6.7, “Características de la replicación y problemas conocidos”.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.