Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa

Darmowa diagnoza laptopa

Dojazd do klienta bezpłatnie

Dojazd do klienta bezpłatnie

Laptopy zastępcze bezpłatnie

Laptopy zastępcze bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

Błąd połączenia (Error 40)

Termin Definicja
Błąd połączenia (Error 40)

Błąd połączenia (Error 40) sygnalizuje niemożność nawiązania połączenia z serwerem SQL, zwykle z powodu ustawień sieciowych.

Co oznacza komunikat Error 40 w SQL Server

Błąd połączenia oznaczany jako Error 40 pojawia się w stosie komunikatów SQL Server Native Client, Microsoft ODBC Driver for SQL Server lub innych dostawcach korzystających z protokołów SQL Server. Typowy tekst brzmi „Named Pipes Provider: Could not open a connection to SQL Server” albo „SQL Network Interfaces, error: 40 – Could not open a connection to SQL Server”. Sam numer błędu nie wskazuje jednej przyczyny. Oznacza, że aplikacja nie zdołała otworzyć połączenia z określoną instancją SQL Server.

Problem może wystąpić zarówno przy połączeniu lokalnym, jak i podczas dostępu do komputera znajdującego się w innej sieci. Przyczyną bywa nieprawidłowa nazwa hosta lub instancji, zatrzymana usługa SQL Server, wyłączony protokół TCP/IP, blokada zapory sieciowej, niedostępny port albo nieprawidłowe rozpoznanie instancji nazwanej. Error 40 dotyczy etapu nawiązywania połączenia, dlatego nie jest tym samym co błąd odrzucenia loginu lub brak uprawnień do konkretnej bazy danych.

Nazwa serwera, instancja i sposób rozpoznania adresu

Adres używany przez aplikację musi odpowiadać rzeczywistej konfiguracji SQL Server. Dla instancji domyślnej często stosuje się samą nazwę komputera albo nazwę komputera z portem, na przykład HOST01 lub HOST01,1433. Instancja nazwana ma zwykle postać HOST01\SQLEXPRESS lub inną nazwę ustaloną podczas instalacji. Wpisanie nieistniejącej nazwy instancji może doprowadzić do Error 40, nawet gdy sam komputer jest osiągalny w sieci.

W przypadku instancji nazwanej klient może korzystać z usługi SQL Server Browser do ustalenia portu przypisanego do tej instancji. SQL Server Browser używa protokołu UDP na porcie 1434. Jeżeli usługa jest zatrzymana albo ruch UDP 1434 jest filtrowany, rozpoznanie nazwy instancji może się nie udać. Alternatywą jest podanie bezpośrednio numeru portu w formacie nazwa_hosta,numer_portu, o ile znany jest port skonfigurowany dla danej instancji. Przecinek oddzielający nazwę hosta od portu ma w tym zapisie znaczenie składniowe.

Usługi SQL Server, TCP/IP i zapora sieciowa

Najpierw należy sprawdzić, czy uruchomiona jest właściwa usługa silnika SQL Server, a nie tylko usługa SQL Server Browser. Każda instancja ma własną nazwę usługi, na przykład SQL Server (MSSQLSERVER) dla instancji domyślnej albo SQL Server (SQLEXPRESS) dla instancji nazwanej. Jeżeli usługa silnika nie działa, klient nie będzie miał procesu, który przyjmie żądanie połączenia.

Dla połączeń sieciowych znaczenie ma konfiguracja SQL Server Configuration Manager. Protokół TCP/IP musi być włączony dla właściwej instancji, a po zmianie tego ustawienia zwykle wymagane jest ponowne uruchomienie usługi SQL Server. Instancja domyślna często korzysta z portu TCP 1433, lecz nie należy zakładać tego bez sprawdzenia konfiguracji. Instancje nazwane mogą używać portów dynamicznych. Zapora systemu Windows lub zapora urządzenia sieciowego powinna zezwalać na ruch do faktycznego portu TCP instancji; samo otwarcie portu UDP 1434 pomaga tylko w scenariuszu, w którym klient korzysta z SQL Server Browser.

Metody zawężania przyczyny Error 40

Diagnostykę warto rozpocząć od rozdzielenia problemu nazwy, transportu i samego silnika. Jeżeli połączenie działa przy użyciu localhost lub lokalnej nazwy komputera, lecz nie działa przy adresie sieciowym, podejrzenie pada na konfigurację TCP/IP, rozwiązywanie nazwy albo zaporę. Jeżeli nie działa także połączenie lokalne, trzeba sprawdzić uruchomienie właściwej instancji, nazwę bazy oraz protokoły skonfigurowane dla klienta. Test z jawnym portem, na przykład HOST01,1433, pozwala odróżnić problem rozpoznawania instancji od problemu z dostępnością portu.

Przydatne są również Podgląd zdarzeń systemu Windows, log błędów SQL Server oraz informacje zapisane w konfiguracji aplikacji. W logu SQL Server można znaleźć port, na którym instancja nasłuchuje, a w konfiguracji klienta należy sprawdzić, czy aplikacja nie używa starej nazwy komputera, błędnego aliasu lub innej instancji niż zamierzona. Diagnostyka laptopa lub komputera PC może obejmować sprawdzenie usług, ustawień sieciowych, reguł zapory oraz poprawności konfiguracji programu korzystającego z SQL Server. Zmiana ustawień powinna być wykonywana dopiero po ustaleniu, który element faktycznie uniemożliwia zestawienie połączenia.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę