mysql的server time zone exception解决方法

今天在使用mysql的时候出现如下错误

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)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException

上网查阅大神的资料,找到了解决方法:


windows系统

windows系统的找到mysql安装目录下的my.ini文件,跳到文件末尾添加

default-time_zone = '+8:00'

然后cmd使用命令重启mysql
注意由于windows下不能直接重启mysql,所以只能先停止再启动mysql

net stop mysql; net start mysql;


linux系统

如果是linux用户的话,使用命令编辑my.cnf:

vi /etc/mysql/my.cnf

再在末尾添加:

default-time_zone = '+8:00'

linux可以直接重启mysql

service mysql restart

这就搞掂了!!!


治标不治本的方法

最后还要说一下,如果你不想重启了还会出现这样的一场,不要使用mysql命令来修改临时时区,如下:

设置全局时区
mysql> set global time_zone = '+8:00';
Query OK, 0 rows affected (0.00 sec)
#设置时区为东八区
mysql> set time_zone = '+8:00';
Query OK, 0 rows affected (0.00 sec)
#刷新权限使设置立即生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

这是一种治标不治本的方法,重启了mysql后还是出现时区异常

感谢大神:
https://www.imooc.com/article/16865

猜你喜欢

转载自blog.csdn.net/weixin_38820375/article/details/87116200