2017-12-27 40 views
0

JavaとMicrosoft SQL Serverを使用してローカルSQLサーバーに接続しようとしています。 私はSQL Serverの認証を使用しています。JavaでSQLサーバーに接続できません

ここでは、コードです:

import java.sql.*; 


public class Main { 
    public static void main(String[] args) { 

     String userName ="testlogin2"; 
     String password ="pass"; 

     String url ="jdbc:sqlserver://localhost/LabNoteMap;integratedSecurity=true;"; //LabNoteMap beeing target db 
     try { 
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
      Connection conn = DriverManager.getConnection(url, userName, password); 
     } catch (ClassNotFoundException e) { 
      e.printStackTrace(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 

     System.out.println("end"); 
    } 
} 

とスタックトレース:

"C:\Program Files\Java\jdk-9\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.5\lib\idea_rt.jar=63510:C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.5\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\Deus\IdeaProjects\testMYSQL\out\production\testMYSQL;C:\Users\Deus\Desktop\jdbc\sqljdbc_6.0\enu\jre8\sqljdbc42.jar Main 
end 
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost/LabNoteMap, port 1433 has failed. Error: "localhost/LabNoteMap. 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:2369) 
    at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:551) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1963) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773) 
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168) 
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:678) 
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:229) 
    at Main.main(Main.java:13) 

Process finished with exit code 0 

もいくつかSS:

enter image description here

enter image description here

また、Sqlサーバー構成では、tcp/ipが有効で、ポートが1433に設定されていることにも注意してください。

ファイアウォールの可能性はありますか?それを確認する方法や他の何かを確認する方法がわからないのですか?

+0

そこかどうかを確認するためにファイアウォールをチェックアプリケーションがあなたのデータベースに接続しようとしたことについて何らかのログを記録しています – Stultuske

+0

URLが無効です。[接続URLの構築](https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the)をチェックしてください。 -connection-url)をMicrosoftサイトのSQL Server JDBCドライバドキュメントに追加します。あなたは、すべてのJDBCドライバがURLのために同じ構造に従っていると仮定して間違いを犯しました。 –

答えて

1

接続文字列が間違っています。あなたはそれを

String url ="jdbc:sqlserver://localhost/LabNoteMap;integratedSecurity=true;"; 

String url ="jdbc:sqlserver://localhost;databaseName=LabNoteMap;integratedSecurity=true;"; 

を変更する必要がありますあなたは、接続を確立したいDBをターゲットにされていません。

0
private static String url="jdbc:sqlserver://localhost:1433;DatabaseName = students"; 

私は、msbase.jarとmssqlserver.jarおよびmsutil.jarを使用しています多分あなたは間違ったjarファイルを使用しているか、URLが間違っている(データベース名=?)

+0

SQL Serverドライバの古いバージョン(SQL Server 2000 JDBCドライバ)を使用しているようですが、最近のドライバでは、 'mssql-jdbc-6.2.2.jre8.jar'が必要です –

関連する問題