1

システムから他のシステムにデータベースにアクセスしようとしています。以下はコードです。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class testConnection {

    /**
     * @param args
     * @throws SQLException 
     */
    public static void main(String[] args) throws SQLException {
        // TODO Auto-generated method stub
        String connectionURL = "jdbc:sqlserver://xxx.xxx.xx.xx:1433;DatabaseName=fingerprintdb;user=sa;password=test"; 
        // Change the connection string according to your db, ip, username and password 
          Connection con = null;
        try { 

            // Load the Driver class. 
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
            // If you are using any other database then load the right driver here. 

            //Create the connection using the static getConnection method 
             con = DriverManager.getConnection (connectionURL); 

            //Create a Statement class to execute the SQL statement 
            Statement stmt = con.createStatement(); 

            //Execute the SQL statement and get the results in a Resultset 
            ResultSet rs = stmt.executeQuery("select moviename, releasedate from movies"); 

            // Iterate through the ResultSet, displaying two values 
            // for each row using the getString method 

            while (rs.next()) 
                System.out.println("Name= " + rs.getString("moviename") + " Date= " + rs.getString("releasedate")); 
        } 
        catch (SQLException e) { 
            e.printStackTrace(); 
        } 
        catch (Exception e) { 
            e.printStackTrace(); 
        } 
        finally { 
            // Close the connection 
            con.close(); 
        } 

    }

}

以下は、私が取得している例外です。

com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host xxx.xxx.xx.xx, port 1433 has failed. Error: "connect timed out. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1049)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at testConnection.main(testConnection.java:26)
Exception in thread "main" java.lang.NullPointerException
    at testConnection.main(testConnection.java:48)

同じシステムからデータベースに接続できます。しかし、今はリモートで接続しようとしています。

コマンドプロンプトでipconfigと入力して、上記のIPアドレスを取得しました。私は正しくやっていますか?そうでない場合は、私を修正してください。

以下は、ホストへの ping のログです。

Pinging xxx.xxx.xx.xx with 32 bytes of data:

Reply from xxx.xxx.xx.xx: TTL expired in transit.
Reply from xxx.xxx.xx.xx: TTL expired in transit.
Reply from xxx.xxx.xx.xx: TTL expired in transit.
Reply from xxx.xxx.xx.xx: TTL expired in transit.

Ping statistics for xxx.xxx.xx.xx:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
4

2 に答える 2

1

はい、時々発生します.. (SQLServer がインストールされている場所で次のプロセスを実行します)

あなたはに行く必要があります

Start > Microsoft SQL Server > Configuration Tools > SQL Server Configuration Manager

開いたら行く

SQL Server Configuration Manager > SQL Server Network Configuration > Protocols for SQLExpress 

プロトコル TCP/IP が表示される場所で、無効になっている場合は有効にします。TCP/IP をクリックすると、そのプロパティが表示されます。

このプロパティで、すべての TCP 動的ポートを削除し、すべての TCP ポートに 1433 の値を追加して、再起動します。

SQL Server Services > SQL Server

そして、その完了...

于 2012-11-08T07:02:34.247 に答える
0

TCP/IP 接続を受け入れるようにリモート SQL サーバーを構成する必要があり、リモート接続が有効になっていない場合は、リモート接続を許可する必要がある場合があります。

于 2012-11-08T11:18:59.393 に答える