2016-09-23 13 views
3

JDBC経由でAzure SQLデータウェアハウスに接続しようとしています。私は次の例外を受け取ります。JDBCを使用してAzure SQLデータウェアハウスに接続する際のSQLException

*

com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host tcsqldatawh.database.windows.net, port 1433 has failed. Error: "null. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.". 
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:191) 
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:242) 
    at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2280) 
    at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:493) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1387) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1068) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:904) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:451) 
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1014) 
    at java.sql.DriverManager.getConnection(DriverManager.java:664) 
    at java.sql.DriverManager.getConnection(DriverManager.java:270) 
    at testsqldw.SQLDatabaseConnection.main(SQLDatabaseConnection.java:30) 

*

私は、SQLServerのDB hereへの接続について尋ね同様の質問を見てきました。

プロセスhereを使用して自分のIPにアクセスできるようにデータベースを設定しました。

以下のコードを確認してください:のSQLServer:://databaseserver.database.windows.net:

package testsqldw; 

import java.sql.*; 

    public class SQLDatabaseConnection { 

     // Connect to your database. 
     // Replace server name, username, and password with your credentials 
     public static void main(String[] args) { 


      String connectionString = 
        "jdbc:sqlserver://databaseserver.database.windows.net:1433;" 
        +"database=databaseserver;" 
        +"[email protected];" 
        + "password=password;" 
        + "encrypt=true;" 
        + "trustServerCertificate=false;" 
        + "hostNameInCertificate=*.database.windows.net;" 
        + "loginTimeout=30;"; 

      System.out.println("Total connection string is---\n"+connectionString); 

      // Declare the JDBC objects. 
      Connection connection = null; 
      Statement statement = null; 
      ResultSet resultSet = null; 

      try { 
       connection = DriverManager.getConnection(connectionString); 

       // Create and execute a SELECT SQL statement. 
       String createSql = "create table employee(employee_id varchar(20));"; 
       statement = connection.createStatement(); 
       boolean status=statement.execute(createSql); 

       System.out.println(status); 

       // Print results from select statement 

      } 
      catch (Exception e) { 
       e.printStackTrace(); 
      } 
      finally { 
       // Close the connections after the data has been handled. 

       if (statement != null) try { statement.close(); } catch(Exception e) {} 
       if (connection != null) try { connection.close(); } catch(Exception e) {} 
      } 
     } 
    } 

合計接続文字列が

JDBCで1433;データベース= DATABASESERVER;ユーザー名= @databaseserver; password = password; encrypt = true; trustServerCertificate = false; hostNameInCertificate = *。database.windows.net; loginTimeout = 30;

問題の解決にお手伝いをしてください。私の経験パー

答えて

1

、問題は次の理由により発生する可能性があります。

  1. 作成したSQL Serverが正常に動作しない場合があります。
  2. 誤ったJDBC接続文字列を使用することがあります。

まず、いくつかのクライアントツールを使用してSQLサーバーに接続できます。サーバーに接続できる場合は、SQLサーバーが正常であることを示します。 それ以外の場合は、新しいSQL Serverを作成できます。その後、このURL https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-get-started-provision/に従って新しいSQLデータウェアハウスを作成することができます。 URLにはファイアウォールの設定方法も含まれています。

私はSQL Serverに接続するためにSQL Server InTouchを使用します。以下はいくつかの説明画像です。

enter image description here

あなたはAzureのポータルによってパラメータを得ることができます。ポート番号は1433です。

次の図は、サーバーが正常であることを示しています。

enter image description here

は、第二の理由のために、あなたは紺碧のポータルから接続文字列をコピーして、パスワードのみを変更することができます。

enter image description here

はそれがお役に立てば幸いです。どんな心配も、私に知らせてください。

関連する問題