Saltar al contenido

Configurar la zona horaria para el contenedor docker mysql

Esta es la contestación más acertada que te podemos compartir, pero primero estúdiala pausadamente y analiza si se puede adaptar a tu trabajo.

Solución:

Entonces necesitas usar un Dockerfile en este caso y manejarlo como a continuación

FROM mysql:5.7.21
RUN echo "USE mysql;" > /docker-entrypoint-initdb.d/timezones.sql &&  mysql_tzinfo_to_sql /usr/share/zoneinfo >> /docker-entrypoint-initdb.d/timezones.sql

Esto asegura que cuando se cargue el contenedor mysql, cargará toda la información de la zona horaria. Ahora puedes usarlo usando variables de entorno.

Variable ambiental

mysqldb:
    #image: mysql:5.7.21
    build: .
    #container_name: mysql_container
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - TZ=Europe/Sofia

Usarlo con un archivo de configuración es un problema. Cuando inicie la base de datos, le dará un error.

mysqldb_1  | 2018-04-24T12:29:43.169214Z 0 [Warning] InnoDB: New log files created, LSN=45790
mysqldb_1  | 2018-04-24T12:29:43.215187Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
mysqldb_1  | 2018-04-24T12:29:43.281229Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 2a87fec6-47bb-11e8-9f1e-0242ac110002.
mysqldb_1  | 2018-04-24T12:29:43.284010Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
mysqldb_1  | 2018-04-24T12:29:43.284404Z 0 [ERROR] Fatal error: Illegal or unknown default time zone 'Europe/Sofia'
mysqldb_1  | 2018-04-24T12:29:43.284567Z 0 [ERROR] Aborting

Esto se debe a que necesita que la zona horaria ya se haya cargado. Es posible arreglar esto también, pero es demasiado complicado. Iré con la variable de entorno solo porque eso significa que cuando el contenedor se inicia, la zona horaria ya está configurada.

Tiempo

el valor debe ser

default_time_zone=Europe/Sofia

comprobar detalles

Pero esto podría generar un error como este al reiniciar el servicio mysql, por lo que debe usar el siguiente comando antes de editar el archivo custom.cnf.

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql -p

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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