使用springboot最新版本mysql-Connector连接数据库时报错解决

时间:2023-12-29 23:19:50

在连接数据库时,使用了最新版本的mysql-Connector,即6.0以上版本

1、报错如下:

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

解决方法:

将 jdbc.driverClassName=com.mysql.jdbc.Driver 修改为

jdbc.driverClassName=com.mysql.cj.jdbc.Driver

2、报错如下:

com.mysql.cj.exceptions.InvalidConnectionAttributeException: 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.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_60]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_60]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_60]
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[na:1.8.0_60]

解决方式:

在jdbc连接url中加入属性serverTimezone,即需要指定时区。例如:

jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk&useSSL=true

&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Hongkong  

serverTimezone只是扩展:

  1、选择东8区的Hongkong、Asia/Shanghai或者Asia/Hongkong作为参数

  2、serverTimezone=GMT%2B8表示北京时间