今天在使用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后还是出现时区异常