Nie mogę połączyć się z bazą danych z witryny. Otrzymuję ten błąd:
Dostawca nazwanych potoków, błąd: 40 - nie można otworzyć połączenia z programem SQL Server
Próbowałem użyć lokalnego adresu IP do połączenia, a także publicznego. Próbowałem:
- Tak, witryna może komunikować się z serwerem
- Nazwane potoki / TCP jest włączone.
- Połączenia zdalne są dozwolone.
- Zapora systemu Windows jest wyłączona
- Utworzono wyjątek dla portu 1433 w Zaporze systemu Windows.
- Włączono wszystko w programie SQL Server Configuration Manager.
Co jeszcze mogę tutaj zrobić?
Odpowiedzi:
Rozwiązanie tego problemu jest bardzo łatwe:
Zrzut ekranu przedstawiający kroki:
źródło
I najprostsze rozwiązanie - sprawdź, czy wrócił ukośnik ...
Spędziłem około godziny próbując dowiedzieć się, co jest nie tak z SERWEREM / NAZWA INSTANCJI, gdy wszystko jest poprawnie skonfigurowane, nazwane potoki, prawa dostępu użytkownika ... i nagle mnie uderzyło, to nie jest ukośnik, to ukośnik odwrotny (
\
).Horror, wstyd ...
źródło
Server=MyServerName\DOLPHIN=Trusted_Connection=True;Database=DolphinPlatform
Podczas opracowywania (C #) łączyłem się z lokalnie zainstalowanym serwerem MSSQL 2017, ale kiedy poszedłem go wdrożyć, zdalny serwer zainstalowany przez dostawcę oprogramowania działał jakoInstance
. Ciągle myślałem, że to problem z uwierzytelnianiem, ponieważ działał jako usługa lub coś, dopóki tego nie znalazłem.Po zainstalowaniu SQL Server jest to trzyetapowy proces:
Uruchom ponownie serwer SQL Config Manager -> SQL Server Services -> SQL Server (SQLEXPRESS) -> Kliknij prawym przyciskiem myszy -> Uruchom ponownie
Użyj odpowiednich nazw serwera i instancji (obie są potrzebne!). Zwykle byłoby to . \ SQLEXPRESS , na przykład zobacz zrzut ekranu z okna dialogowego połączenia QueryExpress.
Masz to.
źródło
Właśnie zainstalowałem programistę SQL SERVER 2012. Kiedy tworzyłem swój pierwszy pakiet SSIS, otrzymałem ten błąd potoku, gdy próbowałem utworzyć zadanie połączenia danych w SQL Server 2012 Data Tools w oknie Menedżer połączeń. Rozwiązałem za pomocą powyższego postu.
Jeśli wybierzesz nazwaną instancję i wywołasz nazwaną instancję SSQDatabase1, a nazwa twojego komputera to PCX1. Musisz wprowadzić PCX1 \ SSQDatabase1, a nie tylko SSQDatabase1, w przeciwnym razie zostanie wyświetlony błąd nazwanych potoków.
źródło
Wątek w witrynie MSDN Social, Re: Named Pipes Provider, błąd: 40 - Nie można otworzyć połączenia z serwerem SQL , ma całkiem przyzwoitą listę możliwych problemów związanych z Twoim błędem. Możesz chcieć sprawdzić, czy któryś z nich może być tym, czego doświadczasz.
źródło
ip.ip.ip.ip/NamedInstance
?i Właśnie włączyłem TCP / IP, VIA, Named Pipes w menedżerze konfiguracji Sql Server. Mój problem został rozwiązany, zapoznaj się z tym, aby uzyskać więcej informacji Rozwiązywanie nazwanych potoków Błąd 40
źródło
Użyj SERWER \\ NAZWA INSTANCJI. Użycie podwójnego odwrotnego ukośnika w moim projekcie rozwiązało mój problem.
źródło
@"server\instance"
lub"server\\instance"
powinien działać. Jeśli jest w pliku konfiguracyjnym, potrzebujesz tylko zwykłego serwera tekstowego \ instance.Dzięki Damianowi ...
Potoki nazwane TCP / IP ... oba włączone
Web Config… (dla localhost)
źródło
Miałem ten sam problem. Spędziłem około 6 godzin, kiedy musiałem przeprowadzić migrację niektórych serwerów. Wypróbowałem wszystkie sugestie dostępne na ten temat i inne.
Rozwiązanie było tak proste, jak restart serwera!
źródło
w moim przypadku miałem samodzielny serwer, zmieniłem domyślny port serwera sql 1433 w menedżerze konfiguracji na jakiś numer i zrestartowałem usługę sql servis, aby zaczęła obowiązywać, mogłem połączyć się z serwerem sql przez Management Studio, jeśli się zalogowałem na serwer. ale nie mogłem połączyć się z mojego komputera lokalnego przez serwer sql, pojawia się błąd:
Podczas nawiązywania połączenia z programem SQL Server wystąpił błąd związany z siecią lub wystąpieniem. Serwer nie został znaleziony lub nie był dostępny. Sprawdź, czy nazwa instancji jest poprawna i
że 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 serwerem SQL) (Microsoft SQL Server, błąd: 5)
Sprawdziłem i zweryfikowałem wszystkie poniższe
-Potoki nazwane / TCP jest włączone. - Połączenia zdalne są dozwolone. -Windows Firewall jest wyłączony -Utworzono wyjątek dla portu w Windows Firewall (nie było to konieczne w moim przypadku, ponieważ serwer znajduje się w tej samej podsieci). -Włączono wszystko w programie SQL Server Configuration Manager.
Następnie zmieniłem numer portu z powrotem na domyślny 1433 i zrestartowałem usługę serwera sql, a problem został rozwiązany i mogę połączyć się z serwerem sql z mojego lokalnego studia zarządzania.
źródło
Miałem ten sam problem. Używam MSSQL Server Management Studio 2017 i rozwiązałem ten problem, wykonując następujące kroki:
i naprawiłem to.
źródło
Spróbuj wykonać następujące czynności:
Otwórz okno usług (otwórz pole uruchamiania i wpisz services.msc).
Szukam usług SQL (z prefiksem SQL).
Uruchom je (jeśli nie możesz ich uruchomić. Przejdź do kroku 4).
Kliknij prawym przyciskiem myszy każdą usługę -> Właściwości -> Przejdź do zakładki „Zaloguj” -> wybierz logowanie jako „Lokalne ...” -> 0K. Następnie ponownie uruchom usługi SQL.
Wypróbuj Open SQL i połącz bazę danych.
źródło
Najprawdopodobniej twoja nazwa DB jest nieprawidłowa, zobaczysz nazwę serwera w VS, np. "DESKTOP-0I14BKI", ale jeśli otworzysz SSMS, zobaczysz DESKTOP-0I14BKI \ SQLBLAHBLAH , po prostu dodaj " \ SQLBLAHBLAH " (nazwa instancji ) do „nazwy serwera” we właściwościach połączenia VS.
Zobaczysz :
Naprawić:
źródło
TL; DR;Twoja instancja programu SQL Server używa portów dynamicznych, które nie działają. Wymuś program SQL Server, aby używał portu statycznego nr 1433.
Uzupełnij szczegóły : Przede wszystkim ten problem jest bardziej prawdopodobny, jeśli masz połączenie domyślnej i nazwanej instancji lub tylko nazwane instancje (co było moim przypadkiem).
Kluczowa koncepcja : każde wystąpienie programu Microsoft SQL Server zainstalowane na komputerze używa innego portu do nasłuchiwania żądań połączeń przychodzących. Domyślna instancja SQL Server korzysta z portu nr 1433. Po zainstalowaniu nazwanych instancji zaczną one używać portów dynamicznych, co jest ustalane podczas uruchamiania usługi Windows odpowiadającej nazwanej instancji SQL Server.
Mój kod nie mógł połączyć się z jedyną nazwaną instancją SQL Server na mojej maszynie wirtualnej (kod błędu 40). Możesz wypróbować poniżej możliwe rozwiązania:
Rozwiązanie nr 1 : Kod klienta próbujący połączyć się z wystąpieniem SQL Server korzysta z pomocy usługi przeglądarki SQL Server w ustaleniu numeru portu, na którym nazwane wystąpienie nasłuchuje połączeń przychodzących. Upewnij się, że usługa przeglądarki SQL jest uruchomiona na Twoim komputerze.
Rozwiązanie nr 2 : Sprawdź numer portu (w kolorze żółtym), którego używa nazwana instancja programu SQL Server w menedżerze konfiguracji programu SQL Server, jak pokazano na poniższej migawce:
Użyj tego numeru portu jawnie w ciągu połączenia lub z
sqlcmd
pokazanymi poniżej:Rozwiązanie nr 3 : Wymuś nazwane wystąpienie korzystania z portu 1433, który jest używany domyślnie. Pamiętaj, że zadziała to tylko wtedy, gdy nie masz żadnego domyślnego wystąpienia programu SQL Server na swoim komputerze, ponieważ domyślna instancja programu SQL Server będzie już używać portu nr 1433. Ten sam numer portu nie może być używany przez dwie różne usługi systemu Windows.
Zaznacz
TCP Dynamic ports
pole jako puste iTCP Port
pole na 1433.Zmień numer portu w parametrach połączenia, jak pokazano poniżej:
LUB
Uwaga : każda zmiana ustawień TCP / IP wymaga odpowiedniego ponownego uruchomienia usługi Windows.
Co ciekawe, po usunięciu błędu, gdy wróciłem do dynamicznego ustawienia portu, aby odtworzyć ten sam błąd, to się nie stało. Nie pewny dlaczego.
Przeczytaj poniżej interesujące wątki, aby dowiedzieć się więcej o dynamicznych portach SQL Server:
Jak skonfigurować port SQL Server w wielu instancjach?
Kiedy port dynamiczny jest „dynamiczny”?
Kiedy używać portu dynamicznego TCP, a kiedy portu TCP?
Otrzymałem wskazówki do rozwiązania mojego problemu z tego bloga.
źródło
W moim przypadku otworzyłem SQL Server Management Studio i szukałem SQLEXPRESS w moim silniku bazy danych. Miał dwa wystąpienia i wybrałem właściwy.
źródło
Jeśli pracujesz z rdzeniem Asp.net i korzystasz z appsettings.json, zapisz serwer jako localhost, a po zapisaniu nazwy instancji sql dla włączonego nazwanego potoku, takiego jak ten
źródło
Bardzo proste rozwiązanie
użyj
(local)\InstanceName
tego. to działało dla mnie.źródło
Jeśli próbowałeś ponownie uruchomić usługę MSSQLSERVER i nie zadziałało, może to być rozwiązanie:
Jeśli używasz SQLExpress, nazwa serwera powinna być następująca: NazwaKomputera \ SQLExpress. Jednak w przypadku SQLDeveloper nie musisz poprawiać SQLDeveloper po nazwie ComputerName.
źródło
Po wykonaniu wszystkich wymienionych tutaj kroków , jeśli nadal się nie łączy, spróbuj dodać DNS z adresem IP w pliku hosts w folderze etc. Dodanie adresu IP zamiast nazwy DNS w ciągu połączenia powinno być tymczasowym rozwiązaniem, aby sprawdzić, czy połączenie faktycznie działa.
źródło
Zapewniłem i zrobiłem to również i chcę tylko podzielić się tym DOUBLE BACKSLASH
oBuilder.DataSource = "SPECIFICPCNAME \ SQLEXPRESS";
Użycie POJEDYNCZEGO klawisza BACKSLASH spowodowało błąd kompilacji, tj .: Błąd 1 Nierozpoznana sekwencja ucieczki
Mam nadzieję, że to pomoże następnemu facetowi - poświęciłem obiad, przekąskę o północy i najważniejsze wydarzenia NBA, aby rozwiązać ten problem (szkoda)
Dzięki [Tamizh venthan] ^ _ ^
źródło
Włącz protokół TCP / Ip, protokół potokowy, przechodząc do Zarządzanie komputerem -> SQL i usługi, upewnij się, że usługa jest włączona. Zwiększ port w zaporze. Spróbuj zalogować się przez wiersz polecenia -> jako administrator; na koniec nazwa użytkownika powinna być (lokalna) \ SQLEXPRESS. Mam nadzieję że to pomoże.
źródło
Otwórz Menedżera konfiguracji programu SQL Server
źródło
Miałem ten sam problem i rozwiązałem go, wyłączając zaporę ogniową (ESET).
Pierwszym krokiem do rozwiązania tego problemu powinna być próba pingowania własnego komputera z innego komputera. Jeśli masz włączoną zaporę, możesz nie być w stanie wykonać polecenia ping. Próbowałem pingować swój komputer, ale ping nie powiódł się (nie otrzymałem odpowiedzi z serwera)
źródło
Zasugerowałem poniższe kroki, aby rozwiązać problem Jak naprawić błąd „Dostawca nazwanych potoków, błąd 40 - nie można otworzyć połączenia z serwerem SQL ”
źródło
Próbowałem dodać nowe połączenie w VS2015. Żadna z poniższych sugestii nie zadziałała. Podejrzewając jakiś błąd w kreatorze, zwłaszcza że SSMS był w stanie połączyć się dobrze, postanowiłem spróbować go oszukać. Zadziałało!
Zamiast dodawać połączenie, użyj opcji „Utwórz nową bazę danych SQL Server”. Wpisz nazwę swojego serwera i losową nazwę nowej bazy danych, np. „Test”.
Zakładając, że to się powiedzie, otwórz Eksplorator serwera w VS, zlokalizuj połączenie w Połączenia danych, kliknij je prawym przyciskiem myszy i wybierz Modyfikuj połączenie.
Zmień „test” (z kroku 1) na nazwę istniejącej bazy danych, z którą chcesz się połączyć. Kliknij „Testuj połączenie”. Tym razem powinno działać!
Usuń tymczasową bazę danych utworzoną w kroku 1.
źródło
Myślę, że mam jeszcze jedno rozwiązanie. Niedawno zmieniłem nazwę komputera, więc po wypróbowaniu wszystkich powyższych metod nadal nie mogłem się połączyć. Zmieniłem nazwę serwera. Nazwa serwera => (przeglądaj więcej) => pod silnikiem bazy danych został znaleziony nowy serwer, taki sam jak nowa nazwa komputera. To zadziałało i życie znów jest dobre.
źródło
Walczyłem z tym przez wieki, zanim zdałem sobie sprawę z mojego błędu - użyłem przecinków zamiast średników w ciągu połączenia
źródło
Miałem ten problem, ale żadna z powyższych sugestii go nie rozwiązała.
Widziałem ten problem podczas wdrażania mojej witryny sieci Web w usługach IIS. Poprawka polegała na przejściu do ustawień zaawansowanych względem domyślnej puli aplikacji i zmianie właściwości tożsamości z domyślnej na Administrator.
źródło
Dla mnie był to problem z Firewallem.
Najpierw musisz dodać port (taki jak 1444 i może 1434), ale także
i
Drugi raz pojawił się ten problem, kiedy wróciłem do zapory, ścieżki były nieprawidłowe i musiałem zaktualizować formularz 12 do 13! Wystarczy kliknąć przycisk Przeglądaj na karcie Programy i usługi, aby to zrealizować.
Na koniec spróbuj uruchomić polecenie
U mnie zwrócił powód błędu
źródło
Próbowałem prawie wszystkiego na tej stronie, ale miałem kilka podstawowych problemów, które w rzeczywistości wymagały rozwiązania. Nie byłem w stanie zrobić pewnych rzeczy, takich jak otwarcie Menedżera konfiguracji SQL Server, które zakończyło się uszkodzeniem / brakiem plików dostawcy WMI.
Istnieje wiele żmudnych sposobów rozwiązania tego problemu, zgodnie z tym, co przeczytałem, ale narzędzie z tweaking.com było w stanie usunąć i zastąpić / naprawić moje pliki dostawcy WMI (Instrumentacji zarządzania Windows).
Kiedyś naprawiałem komputer i ogólnie narzędzie tweaking.com naprawdę zrobiło na mnie wrażenie i zostało zasugerowane na jednej ze stron forum błędów WMI, na które poszedłem.
Po rozwiązaniu tego problemu udało mi się połączyć z moją bazą danych SQL, zarówno lokalnie, jak i zdalnie.
Mam nadzieję, że to komuś pomoże.
źródło