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


82

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));
}

로컬 컴퓨터가 포트 1433에 대한 연결을 거부했습니다. 방화벽 문제 일 수 있습니다. 또한 반드시 실제로 포트에서 수신 대기 뭔가이 있는지 확인
MadProgrammer

답변:


203
  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. 확인을 클릭하십시오.

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

감사.


13
변경 한 후에는 SQL 인스턴스를 다시 시작하는 것을 잊지 마십시오.
JimGoods 2015 년

16
다음과 같이 SQL 인스턴스를 다시 시작합니다. "SQL Server 구성 관리자"-> "SQL Server 2012 서비스"에서 "SQL Server"를 마우스 오른쪽 단추로 클릭하고 "다시 시작"을 선택합니다.
개발자 Marius Žilėnas

10
IPAII 에서 TCP 포트가 1433 인지 확인하십시오 .
개발자 마리우스 Žilėnas

또는 애플리케이션의 포트 번호를 IPAII의 TCP 동적 포트 값으로 변경하십시오. 값을 변경할 수 없기 때문에 이것이 작동하도록하기 위해 한 것입니다.
AlieneilA

111

쉬운 솔루션

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

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

여기에 이미지 설명 입력


2
이 단계를 수행 한 후 서버가 작동하려면 서버를 중지했다가 다시 시작해야했습니다. 감사!
bluefox

15

오류는 자명합니다.

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

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

telnet 127.0.0.1 1433

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


1
나는 1433 연결에 실패 호스트 또는 포트에 연결을 열 수 없습니다 127.0.01`could에 연결 말한다 텔넷 127.0.01 1433을 시도
Aysha Nijhawan

1
따라서 서버를 설치하지 않았거나 서버가 실행 중이 아니거나 연결을 차단하는 방화벽이있을 가능성이 큽니다. 이것은 일반적으로 자바 프로그램 문제가되지 않습니다
gerrytan

11

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

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


나를 많이 도왔다. 클라이언트 연결을 만들기 위해 실행해야하는 핵심 구성 요소 인 브라우저가 비활성화되었습니다.
Mayur

3

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

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

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

나는 영업 이익은하지 MySQL의 SQL Server를 사용하고있는 것
SpringLearner

@AyshaNijhawan 수신중인 포트를 확인 했습니까? 또한 동일한 ip / port 및 자격 증명을 사용하여 명령 프롬프트 또는 SQL 클라이언트를 통해 SQL 서버에 연결해보십시오.
준드 아산

포트는 1433이고 연결 문자열에 넣어 사용해 보았습니다. 명명 된 파이프, 메모리 및 TCP / IP는 SQL 서버 N / W 구성-> MSSQLSERVER 용 프로토콜에서 활성화됩니다.
Aysha Nijhawan

0

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


0

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


0

% windir % \ System32 폴더를 열고 SQLServerManagerXX.msc를 찾습니다.

예를 들면 :

C : \ Windows \ System32 \ SQLServerManager14.msc

프로토콜 설정으로 이동 한 다음 TCP / IP 포트를 기본적으로 활성화하십시오.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.