java.sql.SQLException: el valor de la zona horaria del servidor xxx no se reconoce

Método de configuración de mysql sin problemas

Hoy, al usar springboot para operar la base de datos, de repente informé un error
java.sql.SQLException: The server time zone value '�й���׼ʱ��' 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.

Este error se debe a que el paquete de dependencia de la conexión mysql es una versión alta:
al configurar datasource.url, no puede simplemente configurarlo así:

#DB Configuration:
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/crawler
spring.datasource.username=root
spring.datasource.password=root
        
#JPA Configuration:
spring.jpa.database=MySQL
spring.jpa.show-sql=true

Pero para agregar algo de información a spring.datasource.driverClassName y spring.datasource.url

Solución:

spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/crawler?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

O de la siguiente manera, se puede añadir ?serverTimezone=UTCque directamente

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/crawler?serverTimezone=UTC

O modifique el paquete de dependencia de mysql a una versión inferior

<!--MySQL连接包-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.6</version>
</dependency>

Resumen
Al usar el controlador mysql en el proyecto, si es una versión inferior 5.xx, puede continuar usando el com.mysql.jdbc.Drivercontrolador, y el controlador de la versión superior (como 6.0) debería usar el nuevo controlador com.mysql.cj.jdbc.Driver. IDEA tiene una configuración, como se muestra en la siguiente figura, aquí se avanzará Establezca la versión del controlador, entonces el controlador que configuramos en application.properties no será válido. También me vi atrapado en este pozo, por lo que el siguiente es un conjunto de clasificación de versiones altas y bajas.
Inserte la descripción de la imagen aquí

Configuración 100% correcta

  1. En primer lugar, idea elige la versión de Mysql configurada de antemano. Aquí establecemos una versión alta y una baja de uso común. Puedes elegir una al principio, porque necesitas configurarla después.Inserte la descripción de la imagen aquí

  2. Versión alta --- 8.0.20 Desplácese
    hacia abajo en el marco izquierdo, seleccione Mysql y comience a configurar la ruta del paquete jar de la que depende la versión alta. Generalmente, elegimos nuestro propio almacén maven local. Por defecto, la idea se llama en el almacén local en .m2. Recuerda aplicar al final.
    Inserte la descripción de la imagen aquí

  3. Versión baja --- 5. 1. 6
    También desplácese hacia abajo en el marco izquierdo, seleccione otra versión baja de Mysql, aquí está la llamada Mysql 5.1, comience a configurar la ruta del paquete jar de la que depende la versión baja, generalmente elija nuestro propio maven local Almacén, idea se llama por defecto en el almacén local en .m2. Recuerda aplicar al final.
    Inserte la descripción de la imagen aquí

  4. IDEA configuración puede decir así, y ahora podemos elegir la versión que necesita cambiar el nivel en el que el primer paso, pero también necesitamos un archivo de configuración: application.properties;
    Debido a la configuración por defecto idea de la unidad, por lo que puede configurar ya no spring.datasource.driverClassName, Por supuesto, también se puede configurar, pero el valor predeterminado no es válido, se puede utilizar como descripción

    #DB Configuration:高版本 Mysql --- 8.0.20 
    # spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/crawler?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
    spring.datasource.username=root
    spring.datasource.password=root
    
    #JPA Configuration:
    spring.jpa.database=MySQL
    spring.jpa.show-sql=true
    
    
    #DB Configuration:低版本 Mysql --- 5.1.6
    # spring.datasource.driverClassName=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/crawler
    spring.datasource.username=root
    spring.datasource.password=root
    
    #JPA Configuration:
    spring.jpa.database=MySQL
    spring.jpa.show-sql=true
    
    

Supongo que te gusta

Origin blog.csdn.net/weixin_44505194/article/details/106674103
Recomendado
Clasificación