Właśnie zainstalowałem SQL Server Express 2012 na moim serwerze domowym. Próbuję połączyć się z nim z programu Visual Studio 2012 z komputera stacjonarnego i wielokrotnie otrzymuję znany błąd:
Wystąpił błąd związany z siecią lub specyficzny dla wystąpienia podczas ustanawiania połączenia z programem SQL Server. Serwer nie został znaleziony lub był niedostępny. Sprawdź, czy nazwa instancji jest poprawna i czy SQL Server jest skonfigurowany do zezwalania na połączenia zdalne. (dostawca: Dostawca nazwanych potoków, błąd: 40 - Nie można otworzyć połączenia z programem SQL Server)
Co zrobiłem, aby spróbować to naprawić:
- Uruchom SQL Server Configuration Manager na serwerze i włącz SQL Server Browser
- Dodaj wyjątek Zapory systemu Windows na serwerze dla TCP, porty 1433 i 1434 w lokalnej podsieci.
- Sprawdź, czy mam login do instancji SQL Server dla zalogowanego użytkownika na pulpicie.
- Sprawdź, czy korzystam z uwierzytelniania systemu Windows w wystąpieniu programu SQL Server.
- Wielokrotnie uruchom ponownie SQL Server i cały serwer Dang.
- Wyciągnij wszystkie moje włosy.
Jak mogę uzyskać SQL Server 2012 Express zezwalający na połączenia zdalne !?
Odpowiedzi:
Cieszę się , że zapytałem . Rozwiązanie, które w końcu odkryłem, było tutaj:
Jak skonfigurować program SQL Server Express, aby zezwalał na zdalne połączenia TCP / IP na porcie 1433?
Do tej pory tak dobre i całkowicie oczekiwane. Ale wtedy:
(Ponadto, jeśli następujące kroki, to nie konieczne, aby umożliwić SQL Server Browser, i trzeba tylko pozwolić port 1433, a nie 1434)
Te dodatkowe pięć kroków to coś, czego nie pamiętam, że kiedykolwiek musiałem zrobić w poprzedniej wersji SQL Server, Express lub w inny sposób. Wydają się być konieczne, ponieważ używam nazwanego wystąpienia (moja nazwa_serwera \ SQLEXPRESS) na serwerze zamiast wystąpienia domyślnego. Spójrz tutaj:
Skonfiguruj serwer do nasłuchiwania na określonym porcie TCP (Menedżer konfiguracji programu SQL Server)
źródło
IPAll
ustawienie było ZBAWICIELEM! Mój był jak twój ...: Dmyserver\sqlexpress,[portnumber]
bez nawiasów. Zauważ, że tak jest,
i nie:
Prawidłowym sposobem połączenia ze zdalnym programem SQL Server (bez otwierania portu UDP 1434 i włączania przeglądarki SQL Server) jest użycie adresu ip i portu zamiast nazwanego wystąpienia .
Używanie adresu ip i portu zamiast nazwanego wystąpienia jest również bezpieczniejsze, ponieważ zmniejsza obszar ataku.
Być może 2 zdjęcia mówią 2000 słów ...
Ta metoda używa określonego portu (tak wierzy większość ludzi).
Ta metoda wymaga otwarcia portu UDP 1434 i uruchomionej przeglądarki SQL Server.
źródło
Jeszcze jedna rzecz...
Kyralessa dostarcza świetnych informacji, ale mam jeszcze jedną rzecz do dodania, gdzie byłem zaskoczony nawet po tym artykule.
W obszarze Konfiguracja sieci programu SQL Server> Protokoły dla serwera> Włączone TCP / IP. Kliknij prawym przyciskiem myszy TCP / IP i wybierz właściwości. W obszarze Adresy IP należy ustawić opcję Włączone na Tak dla każdego używanego typu połączenia.
źródło
Możesz użyć tego do rozwiązania tego problemu:
Przejdź do START> WYKONAJ i uruchom CLICONFG.EXE.
Protokół Nazwane potoki będzie pierwszy na liście. Zdemontuj go i promuj TCP / IP.
Dokładnie przetestuj aplikację.
Mam nadzieję, że ta pomoc.
źródło
Możesz także ustawić
w oknie dialogowym protokołu, a następnie w adresie IP IP1 (powiedzmy)
źródło
Ten artykuł pomógł mi ...
Jak włączyć połączenia zdalne w programie SQL Server
Wszystko w SQL Server zostało skonfigurowane, mój problem polegał na tym, że zapora blokowała port 1433
źródło
Ostatnio miałem ten problem. 2015 sierpnia
Rozwiązany przez otwarcie SQL Server Configuration Manager
Można połączyć się z programem SQL Server Manager do komputera: [adres hosta], 1433
Przykład:
źródło
Podczas mojej instalacji SQL Server 2012 Developer Edition, zainstalowanej z ustawieniami domyślnymi, musiałem tylko załadować SQL Server Configuration Manager -> Konfiguracja sieciowa SQL Server -> Protokoły dla MSSQLSERVER i zmienić TCP / IP z Wyłączone na Włączone.
źródło
Musiałem dodać regułę portu przychodzącego zapory, aby otworzyć port UDP 1434. To jest ta, na której nasłuchuje przeglądarka serwerów Sql.
źródło
Wolę sposób „Rosdi Kasim”, ponieważ nie wymaga to szczegółowej konfiguracji adresu IP.
Z pewnością zapomnę o tym ponownie, gdy spróbuję ponownie uruchomić inny serwer.
Keep It Simple Stupid (KISS), po prostu włącz usługę Sql Server Browser, a następnie dodaj \ SQLEXPRESS za adresem IP podczas podłączania serwera.
Bezpośrednie użycie adresu IP bez „\ SQLEXPRESS” było moim punktem niepowodzenia, ponieważ nie używa domyślnego portu.
Dzięki.
źródło
Miałem ten sam problem z lokalnie nazwaną instancją SQL Server 2014. Połączenie za pomocą
FQDN\InstanceName
nie powiedzie się, a połączenie przy użyciu tylko mojegohostname\InstanceName
działało. Na przykład: łączenie przy użyciumycomputername\sql2014
działało, ale przy użyciumycomputername.mydomain.org\sql2014
nie. DNS został poprawnie rozwiązany, protokół TCP / IP został włączony w Menedżerze konfiguracji SQL, dodano reguły Zapory systemu Windows (a następnie wyłączono zaporę do testowania, aby upewnić się, że niczego nie blokuje), ale żadna z nich nie rozwiązała problemu.Wreszcie musiałem uruchomić usługę „ SQL Server Browser ” na SQL Server i to rozwiązało problem z łącznością.
Nigdy nie zdawałem sobie sprawy, że usługa przeglądarki SQL Server faktycznie pomagała SQL Serverowi w nawiązywaniu połączeń; Miałem wrażenie, że po prostu pomógł wypełnić listy rozwijane, kiedy kliknąłeś „Przeglądaj więcej” serwerów, z którymi chcesz się połączyć, ale tak naprawdę pomaga wyrównać żądania klientów z poprawnym numerem portu do użycia, jeśli numer portu nie jest jawnie przypisany (podobne w jaki sposób powiązania witryn pomagają złagodzić ten sam problem na serwerze sieci Web IIS obsługującym wiele witryn).
Ten element połączenia dał mi wskazówkę dotyczącą usługi przeglądarki SQL Server: https://connect.microsoft.com/SQLServer/feedback/details/589901/unable-to-connect-on-localhost-using-fqdn-machine- imię
Przyczyna usługi „SQL Server Browser” od TechNet (podkreślenie dodane przeze mnie): https://technet.microsoft.com/en-us/library/ms181087(v=sql.120).aspx
Z sekcji „Korzystanie z przeglądarki SQL Server”:
I więcej informacji z tego samego artykułu z sekcji „Jak działa przeglądarka SQL Server”:
źródło
Musiałem dodać port za pomocą programu Menedżer konfiguracji i dodać numer portu w moim połączeniu sql [host] \ [nazwa instancji db], 1433
Zwróć uwagę na (przecinek) między instancename a port
źródło
Miałem inny problem niż wszystkie dotychczas wspomniane odpowiedzi!
Powinienem zacząć od stwierdzenia, że miałem go w Visual Studio, a nie SQL Server Express, ale rozwiązanie powinno być dokładnie takie samo.
Boże, to naprawdę bardzo proste i może trochę głupie. Kiedy próbowałem utworzyć bazę danych, a Visual Studio zasugerowało nazwę SQL Servera, podał mi moją nazwę użytkownika Windows, a ponieważ jest to nazwa serwera, wybrałem ją.
W rzeczywistości była to moja nazwa użytkownika systemu Windows +
\SQLEXPRESS
. Jeśli nie zmieniłeś żadnych ustawień, prawdopodobnie jest to również twoje. Jeśli to działa, przestań czytać; to moja odpowiedź. Jeśli to nie działa, może nazwa jest inna.Jeśli, podobnie jak ja, miałeś tylko ten problem w Visual Studio, aby sprawdzić, który jest twój, wykonaj następujące kroki:
To jest nazwa serwera i z tym powinieneś spróbować się połączyć! nie to, co sugeruje Visual Studio!
źródło
Jeszcze jedną rzeczą do sprawdzenia jest poprawne przeliterowanie nazwanego wystąpienia!
Ten artykuł jest bardzo pomocny w rozwiązywaniu problemów z połączeniem: Jak rozwiązywać problemy z łączeniem się z aparatem bazy danych SQL Server
źródło
W moim przypadku baza danych działała na niestandardowym porcie. Sprawdź, czy port, z którym się łączysz, jest taki sam, jak port, na którym działa baza danych. Jeśli jest więcej wystąpień serwera SQL, sprawdź poprawny.
źródło
Wszystko, co musisz zrobić, to otworzyć odpowiedni port w zaporze ogniowej serwera.
źródło
Masz problemy z połączeniem z SQL Server?
Spróbuj odłączyć zaporę.
Jeśli możesz połączyć się z odłączoną zaporą, być może brakuje Ci niektórych reguł wprowadzania, takich jak „broker usług sql”, dodaj te reguły do zapory:
„POŁĄCZENIE ADMINISTRATORA SQL” PORT TCP 1434
„SQL ADMIN CONNECTION” UDP PORT 1434
„USŁUGA ANALIZY SQL” PORT TCP 2383
PORT „PRZEGLĄDAJ ANALIZĘ SQL” PORT TCP 2382
„SQL DEBUGGER / RPC” TCP PORT 135
„SQL SERVER” TCP PORT 1433 i inne, jeśli masz porty dynamiczne
„BROKER USŁUG SQL” PORT TCP 4022
źródło