[java] JDBC 연결 실패, 오류 : 호스트에 대한 TCP / IP 연결 실패

Java 클래스 파일을 SQL Server 2012에 연결하고 싶습니다. SQL Server 인증으로 로그인했습니다. 하지만 연결 오류가 발생합니다.

오류 : 호스트 127.0.0.1, 포트 1433에 대한 TCP / IP 연결에 실패했습니다. 오류 : “연결 거부 : 연결. 연결 속성을 확인하십시오. SQL Server 인스턴스가 호스트에서 실행되고 포트에서 TCP / IP 연결을 허용하는지 확인하십시오. 포트에 대한 TCP 연결이 방화벽에 의해 차단되지 않았는지 확인하십시오. . “

내 코드 —

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  //1. Register your driver
//2. get the connection object
//Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=aysha","sa","admin");
Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1;databaseName=aysha","user=sa","password=admin");
 //"jdbc:sqlserver://127.0.0.1:1433; Instance=SQL2008;" +       "databaseName=MB;user=sa;password=123;";
//Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=aysha","sa" , "password");
//3. Prepare a statement
Statement stmt = con.createStatement();
//4. Write the query`
String sql = "Select * from employee";
//5. Execute the statement and 
ResultSet rs = stmt.executeQuery(sql);
//6. Process the result set

while (rs.next())
{
    System.out.println(rs.getInt(1));
}



답변

  1. SQL Server 구성 관리자를 열고 SQL Server 2012 네트워크 구성을 확장합니다.
  2. InstanceName에 대한 프로토콜을 클릭 한 다음 오른쪽 패널에서 TCP / IP가 활성화되어 있는지 확인하고 TCP / IP를 두 번 클릭합니다.
  3. 프로토콜 탭에서 모두 듣기 항목의 값을 확인하십시오.
  4. IP 주소 탭을 클릭합니다. 모두 수신 값이 예이면이 SQL Server 2012 인스턴스의 TCP / IP 포트 번호는 IPAll 아래의 TCP 동적 포트 항목 값입니다. 모두 수신의 값이 아니요 인 경우이 SQL Server 2012 인스턴스의 TCP / IP 포트 번호는 특정 IP 주소에 대한 TCP 동적 포트 항목의 값입니다.
  5. TCP 포트가 1433인지 확인하십시오.
  6. 확인을 클릭하십시오.

더 궁금한 점이 있으면 알려주세요.

감사.


답변

쉬운 솔루션

시작-> 모든 프로그램-> Microsoft SQL Server 2012-> 구성 도구-> SQL Server 구성 관리자-> SQL Server 네트워크 구성 확장-> 프로토콜-> TCP / IP 활성화 오른쪽 상자를 클릭합니다.

TCP / IP를 두 번 클릭하고 IP 주소 탭으로 이동하여 TCP 포트 아래에 포트 1433을 입력합니다.

여기에 이미지 설명 입력


답변

오류는 자명합니다.

  • SQL 서버가 실제로 실행 중인지 확인하십시오.
  • SQL 서버 호스트 이름, 사용자 이름 및 암호가 올바른지 확인하십시오.
  • 포트 1433에 대한 TCP 연결을 차단하는 방화벽 규칙이 없는지 확인
  • 호스트가 실제로 연결할 수 있는지 확인

내가 자주 사용하는 좋은 검사는 텔넷을 사용하는 것입니다. 예를 들어 Windows 명령 프롬프트에서 다음을 실행합니다.

telnet 127.0.0.1 1433

빈 화면이 나타나면 네트워크 연결이 성공적으로 설정되었음을 나타내는 것이며 네트워크 문제가 아닙니다. ‘호스트에 대한 연결을 열 수 없습니다’가 표시되면 이것은 네트워크 문제입니다.


답변

시작-> 모든 프로그램-> Microsoft SQL Server 2012-> 구성 도구-> SQL Server 구성 관리자를 클릭합니다. 여기에 이미지 설명 입력

SQL Server / SQL Server Browser 상태가 ‘stopped’인 경우 SQL Server / SQL Server Browser를 마우스 오른쪽 버튼으로 클릭하고 시작을 클릭합니다.
경우에 따라 포트 1433에 대한 TCP 연결이 할당 되어도 위의 상태가 중지 될 수 있습니다.


답변

오류에서 알 수 있듯이 SQL 서버가 실행 중이고 포트 1433에서 수신 대기하는지 확인해야합니다. 서버가 실행 중이면 포트 1433에서 연결을 거부하는 방화벽 규칙이 있는지 확인해야합니다.

문제 해결에 유용한 명령은 다음과 같습니다.

  1. netstat -aSQL Server가 원하는 포트에서 수신 대기하는지 확인하는 데 사용 합니다.
  2. gerrytan이 답변에서 언급했듯이 telnet호스트 및 포트에서 작업을 시도 할 수 있습니다.


답변

중요 :
변경 또는 새 설정 후에는 SQLSERVER서비스 를 다시 시작해야합니다 . 실행 services.mscWindows


답변

명명 된 인스턴스를 사용하는 경우 사용하는 포트는 1433이 아닌 1434 일 가능성이 있으므로 앞서 언급 한 텔넷 또는 netstat를 사용하여 확인하십시오.