Esta web utiliza cookies para proporcionarte la mejor experiencia de navegación posible. Estas cookies son guardadas en tu navegador y cumplen funciones como reconocerte cuando regresas a esta web y ayudarnos a saber qué secciones de la web encuentras más interesantes y útiles.
Solucionar The server time zone value ‘CEST’ is unrecognized
Importante: Esta información es para uso lúdico personal. En ningún caso se pretende dar conocimientos, consejos, formaciones, herramientas, ni soluciones técnicas de ámbito comercial ni profesional. Simplemente es información que se ha redactado en finalidad de recordatorio de ciertos proyectos realizados. Si usted no está seguro de la fiabilidad de la información, no cumple con sus expectativas o no es de su agrado, le ruego que abandone este sitio web. Para ver todas las exclusiones garantía y de responsabilidad acceda a la sección Aviso Legal.
Solución para el mensaje de error en Java 11 y MariaDB:
The server time zone value 'CEST' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
*.- Comprobar la zona horaria que tiene configurada el MariaDB:
> mysql -e "SELECT @@global.time_zone;" -u root -p Enter password: +--------------------+ | @@global.time_zone | +--------------------+ | SYSTEM | +--------------------+
*.- Comprobar la zona horaria que tiene configurada el sistema:
> # date +”%Z ”CEST
En los puntos anteriores, se puede observar que MariaDB usa el TimeZone del sistema operativo, y que el sistema operativo usa el TimeZone CEST. Es el horario de centro de europa, ej. Madrid.
Para solucionar el problema es tan fácil como declarar el TimeZone de la base de datos en nuestra aplicación Java. Concretamente en la declaración de la conexión a la base de datos. Se debe añadir el parámetro serverTimezone.
"jdbc:mysql://127.0.0.1/db?serverTimezone="+TimeZone.getDefault().getID()
Reiniciar la aplicación Java. Solucionado.
Otra opción, aunque debes tener claras sus implicaciones, es cambiar la hora del sistema a UTC. Se puede hacer de la siguiente forma:
rm /etc/localtime ln -s /usr/share/zoneinfo/UTC /etc/localtime /etc/init.d/mysql restart
Saludos