2017-12-27 78 views
0

Java 및 Microsoft SQL Server를 사용하여 로컬 SQL Server에 연결하려고합니다. SQL Server 인증을 사용하고 있습니다.Java with SQL Server에 연결할 수 없습니다.

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

,369 여기

코드입니다

또한 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

연결 문자열이 잘못되었습니다. 당신은 연결을 설정하려는 DB를 대상으로하지 않는 것이

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

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

에 당신은 변경해야합니다.

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

나는 어쩌면 잘못된 항아리를 사용하고, msbase.jar 및 mssqlserver.jar 및 msutil.jar을 사용하고 있습니다 또는 URL이 잘못 (데이터베이스 이름 =?)

+0

고대 버전의 SQL Server 드라이버 (SQL Server 2000 JDBC 드라이버)를 사용하는 것처럼 들리지만 최근 드라이버에서는'mssql-jdbc-6.2.2.jre8.jar' 만 필요합니다. –