【2019-10-20完美解决】idea 2019连接mysql 8:Server returns invalid timezone...

问题:
在点击Test Connection后出现这个Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually(服务器返回无效时区。转到“高级”选项卡并手动设置“serverTimezone”属性).错误。
【2019-10-20完美解决】idea 2019连接mysql 8:Server returns invalid timezone..._第1张图片


解决方法:

在mysql服务器中输入以下两条命令:

mysql>show variables like '%time_zone%';

mysql>set global time_zone='+8:00';

注:上面命令在电脑重启后,mysql服务器的时区问题就会失效,输入mysql>set persist time_zone='+8:00';,可以避免每次重启mysql服务器都要重新配置一遍时区。


原因:
因为MySql8.0以上版本的默认时区是比中国时区慢8个小时的美国时区,所以我们只需要将MySql的时区设置为中国时区GMT%2B8(中国时区为8时区)即可。


补充:用JDBC连接mysql的时区设置(可以不设置idea连接mysql

// MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

//设置中国时区和解决中文乱码问题以及数据库名和密码
static final String DB_URL = "jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8";
static final String USER = "root";
static final String PASS ="root";
    
// 注册 JDBC 驱动
Class.forName(JDBC_DRIVER);

//打开连接
Connection conn =DriverManager.getConnection(DB_URL,USER,PASS);

reference:Java用jdbc连接MySql的时区



配置错误的some tips:(外国的东西和中国不一样,所以稍有不注意就会陷入深坑)

  • 版本问题:MySql8.0以上版本需要注意时区问题
  • 文件路径:注意外国软件一般都是默认utf-8的,所以我们用中文名路径DBK,就会造成错误,所以文件名尽量都要使用英文名
  • 乱码问题:一般都是编码类型设置不正确造成的。比如你的文件类型是GBK,然后系统默认是utf-8类型,这时你需要改成Unicode了。
  • 符号问题:在输入命令的时候,看看有没有少打或多打空格,还有中英文符号混淆。
  • share:其他错误。

你可能感兴趣的:(Java)