jdbc连接mysql报错Exception in thread “main” java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä’
Exception in thread "main" 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.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
该错误为是系统时间错误(SQL默认美国时间,而我们中国要比他们迟8小时)
解决方法一
只需要在访问数据库的Url后面加上以下的语句即可:
?serverTimezone=GMT%2B8
例如URL为:
jdbc:mysql://localhost:port/dbtest
改为:
jdbc:mysql://localhost:port/dbtest?serverTimezone=GMT%2B8
解决方法二
1、打开cmd窗口,用root用户登录mysql
mysql -uroot -proot
通过以下命令查询Time Zone,显示如图(SYSTEM为SQL默认美国时间,而我们中国要比他们迟8小时)
show variables like '%time_zone%';
2、修改默认时间:
set global time_zone='+8:00';
3、设置完重新打开命令行,进入mysql,查询Time Zone,即可完成,
4、回到Java代码中再次运行
特别提醒
mysql8.0的注册驱动 注意是 com.mysql.cj.jdbc.Driver
Class.forName("com.mysql.cj.jdbc.Driver");
原文链接:https://blog.csdn.net/weixin_38888926/article/details/89476144
原文链接:https://blog.csdn.net/HW_870754395/article/details/88430293