簡體   English   中英

無法通過 JDBC 連接到 Teradata 數據庫(連接斷開)

[英]Cannot connect to Teradata database through JDBC (Connection broken)

我正在嘗試連接到 teradata 數據庫,我已按照文檔示例以及 web 上的其他示例進行操作,但我無法連接

    String host= "X"; 
    int port=XXXX;
    String database="X";
    String username = "X";
    String password = "X";
    String url = "jdbc:ncluster://"+host+":"+port+"/"+database;
    
    Properties localProperties = new Properties();
    localProperties.put("user", username);
    localProperties.put("password", password);

    Class.forName("com.asterdata.ncluster.Driver");
    Connection conn = DriverManager.getConnection(url, localProperties);

但是,使用此代碼,我收到以下錯誤

Exception in thread "main" java.sql.SQLException: [AsterData][ASTERJDBCDSII](34) : Database connection broken ()
at com.asterdata.ncluster.jdbc.core.NClusterConnection.connect(Unknown Source)
at com.simba.jdbc.common.BaseConnectionFactory.doConnect(Unknown Source)
at com.simba.jdbc.common.AbstractDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at poc.TeradataConnection.main(TeradataConnection.java:31)
Caused by: com.asterdata.ncluster.jdbc.core.MuleException: [AsterData][ASTERJDBCDSII](34) : Database connection broken ()
... 6 more

當我嘗試使用另一個驅動程序 class 時,就像他們的官方文檔中所說的那樣

String url_teradata = "jdbc:teradata://"+host+"/database="+database
Class.forName("com.teradata.jdbc.TeraDriver");
Connection conn = DriverManager.getConnection(url_teradata,username,password);

我明白了

Exception in thread "main" java.lang.ExceptionInInitializerError
at com.teradata.jdbc.jdbc.GenericTeraEncrypt.getGSSM(GenericTeraEncrypt.java:577)
at com.teradata.jdbc.jdbc.GenericTeraEncrypt.<init>(GenericTeraEncrypt.java:116)
at com.teradata.jdbc.jdbc.GenericTeradataConnection.<init>(GenericTeradataConnection.java:108)
at com.teradata.jdbc.jdbc_4.TDSession.<init>(TDSession.java:187)
at com.teradata.jdbc.jdk6.JDK6_SQL_Connection.<init>(JDK6_SQL_Connection.java:36)
at com.teradata.jdbc.jdk6.JDK6ConnectionFactory.constructSQLConnection(JDK6ConnectionFactory.java:25)
at com.teradata.jdbc.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:181)
at com.teradata.jdbc.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:171)
at com.teradata.jdbc.TeraDriver.doConnect(TeraDriver.java:236)
at com.teradata.jdbc.TeraDriver.connect(TeraDriver.java:162)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at poc.TeradataConnection.main(TeradataConnection.java:36)
Caused by: java.lang.NullPointerException
at com.teradata.tdgss.jtdgss.TdgssConfigApi.GetMechanisms(Unknown Source)
at com.teradata.tdgss.jtdgss.TdgssManager.<init>(Unknown Source)
at com.teradata.tdgss.jtdgss.TdgssManager.<clinit>(Unknown Source)
... 13 more

我已經看到這個問題可能與tdgssconfig.jar

但是teradata將此jar集成到terajdbc4.jar中,所以我迷路了。

terajdbc4 和 noarch-aster-jdbc-driver 的版本如下

        <dependency>
         <groupId>com.teradata.jdbc</groupId>
         <artifactId>terajdbc4</artifactId>
         <version>16.20.00.10</version>
       </dependency>
       <dependency> 
         <groupId>com.teradata.jdbc</groupId>
         <artifactId>aster-jdbc-driver</artifactId>
         <version>6.10.00.02</version>
       </dependency>  

使用 Teradata SQL 助手實用程序時,我可以使用我在代碼中輸入的相同信息連接到數據庫

正如 Fred 在他的評論中提到的那樣,我缺少一個版本,即使 teradjdbc4 jar 中有 tgssconfig 庫,這還不夠,我將 terajdbc 升級到 17.00.00.03 並且它工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM