Wiem, że powinniśmy być świadomi takich zwrotów, ale nagle wszystkie moje połączenia z localhost\sqlexpress
przestały działać. Działając jako .\sqlexpress
i (local)\sqlexpress
, nie byłoby to wielkim problemem, gdyby nie fakt, że pracuję nad projektem zespołowym, w którym wszystkie ciągi połączeń są zdefiniowane w poprzednim formacie. I oczywiście trudno mi jest zaakceptować, że nie powinno już działać, więc spędziłem kilka godzin na analizie i ponownym zainstalowaniu kilku wersji SQL Server bezskutecznie. (I na drodze łamania projektów db w VS2010, więc musiałem ponownie zainstalować ...).Nie można połączyć się z bazą danych za pomocą localhost sqlserver
Ale tutaj są szczegóły. Jak już wspomniano, nie mogłem połączyć się z localhost\sqlexpress
, ale z .\sqlexpress
. Te same objawy za pomocą SQL Server Manager i ciągi połączeń dla wdrażania i uruchamiania usług wcf. Wystarczająco zabawne rozwiązywanie domyślnej instancji, jak działa localhost
.
Po pierwsze, tak, SQL Server działa i tylko dla pewności włączyłem TCP/IP i ustawiłem port na 1433, chociaż działa on na moim komputerze współpracowników z wyłączonym TCP/IP. (Gdzieś po drodze przeczytałem, że localhost
można rozwiązać przy użyciu pamięci współużytkowanej podczas korzystania z natywnego klienta SQL, więc domyślam się, że tak właśnie dzieje się w jego systemie.)
Konfiguracja to tylko jedna instancja SQL Server Express 2008 R2 i VS2010 w systemie Windows 7 Professional.
Uruchamianie SQL Express errorlog mówi:
Server is listening on [ 'any' <ipv6> 1433].
Server is listening on [ 'any' <ipv4> 1433].
Netstat mówi (fragment):
TCP 0.0.0.0:1433 Machinenename:0 LISTENING
TCP [::]:1433 Machinenename:0 LISTENING
Zauważam brak 127.0.0.1:1433 i UDP na dowolny port 1433
W celu zdiagnozowania problemu używam sqlcmd, aby dowiedzieć się, który transport jest używany :
1. localhost \ SQLEXPRESS
sqlcmd -Slocalhost\sqlexpress -> Shared memory
sqlcmd -Stcp:localhost\sqlexpress -> SQL Server Network Interfaces: Error Locating Server/Instance Specified
nie można połączyć się z localhost \ SQLEXPRESS z SQL Server Management Studio, nawet jeśli mogę określić pamięci współdzielonej jako protokół
2. localhost
sqlcmd -Slocalhost -> TCP
sqlcmd -Stcp:localhost -> TCP
Może łączyć się z lokalnym hostem z SQL Server Management S tudio
3. (local) \ SQLEXPRESS
sqlcmd -S(local)\sqlexpress -> Shared memory
sqlcmd -Stcp:(local)\sqlexpress -> SQL Server Network Interfaces: Error Locating Server/Instance Specified
można połączyć się (local) \ SQLEXPRESS z SQL Server Management Studio
Więc jestem zagubiony tutaj. Każda pomoc jest wysoko ceniona.