通过 JDBC 发出与 MySql 数据库的连接 [重复]

Posted

技术标签:

【中文标题】通过 JDBC 发出与 MySql 数据库的连接 [重复]【英文标题】:Issue connection to MySql database through JDBC [duplicate] 【发布时间】:2019-11-28 21:32:45 【问题描述】:

我在控制台中不断收到关于时区的相同错误,但我从未尝试在我的代码中设置时区。

public class DriverManagerTester


  public static void main(String[] argv) 

    Connection connection = null;

    try 

        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/data","root", "Iamtyler8");

     catch (SQLException e) 
        System.out.println("Connection Failed! Check output console");
        e.printStackTrace();
        return;
    

    if (connection != null) 
        System.out.println("You made it, take control your database now!");
     else 
        System.out.println("Failed to make connection!");
    
  

控制台中的错误消息:

连接失败!检查输出 consolejava.sql.SQLException: 服务器时区值 'PDT' 无法识别或代表多个时区。如果您想利用时区支持,您必须配置服务器或 JDBC 驱动程序(通过 serverTimezone 配置属性)以使用更具体的时区值。

【问题讨论】:

我从不尝试在我的代码中设置时区。 这正是问题所在。错误消息告诉您需要修复 MySQL 服务器配置,或配置 JDBC 驱动程序(通过 serverTimezone 配置属性)。仔细阅读错误信息。 你是怎么做到的?我一直在网上搜索这个问题的解决方案,但到目前为止我一无所获。 看看这个帖子,有一些很好的解决方案***.com/questions/26515700/… 我现在明白了。问题已解决 当我在 google 上搜索“MySQL 文档 JDBC serverTimezone”时,第一个链接指向解释如何设置服务器时区的文档(第一个解决方案,供参考),第二个链接指向解释的页面如何传递属性,包括 serverTiezone(第二种解决方案)。 【参考方案1】:

你可以简单地运行这个:

SET GLOBAL time_zone = '-7:00';

使用您喜欢的时区

【讨论】:

以上是关于通过 JDBC 发出与 MySql 数据库的连接 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 IP 地址(通过 InetAddress)通过 JDBC 与 MySQL 建立连接?

在jdbc中,负责建立与指定数据库连接的方法是

解决JDBC连接MySQL时发出的警告WARN: Establishing SSL connection without server's identity verification ...

解决JDBC连接MySQL时发出的警告WARN: Establishing SSL connection without server's identity verification ...

jdbc连接mysql时发出警告:WARN: Establishing SSL connection without server's identity verification is not

JDBC在MySQL5与MySQL8之间的联系与区别