2012-08-28 16 views
12

Korzystam z programu SQL Server 2012 Management Studio Express w systemie Windows 7, wystąpiły problemy z połączeniem z lokalną bazą danych. Próbowałem wszystkich wyżej wymienionych rozwiązań, nie działało. proszę pomóż. z góry dziękuję.Błąd połączenia z lokalnym serwerem bazy danych SQL Server w systemie Windows 7

Adres instalacyjny to .

error- A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) (Microsoft SQL Server, Error: -1)

Aby uzyskać pomoc, kliknij MSDN link.

+0

Co zawiera ciąg połączenia? Błąd mówi, że najprawdopodobniej masz tam niepoprawny element źródła danych. –

Odpowiedz

21

Zakładając, że zainstalowany SQL Server i używane nazwie instancji SQLEXPRESS, nazwa serwera powinna być:

.\SQLEXPRESS 

Lub:

127.0.0.1\SQLEXPRESS 

Można sprawdzić nazwę instancji (nie może być SQLEXPRESS) i że serwer działa w menu Start na ścieżce bardzo podobnej do tej (ale będzie się różnić w zależności od wersji):

Start > Programs > Microsoft SQL Server > Configuration Tools >
   SQL Server Configuration Manager

Jeśli jest obecnie zatrzymany, należy kliknąć prawym przyciskiem myszy i wybierz polecenie Uruchom:

enter image description here

Należy kliknąć prawym przyciskiem myszy i upewnić się, że tryb uruchamiania jest ustawiony na automatyczny (jest pod Właściwości> Service) .

Komunikat o błędzie sugeruje, że serwer próbuje użyć nazwanych potoków. Podczas gdy lokalnie powinno być możliwe korzystanie z pamięci współdzielonej, należy następnie upewnić się, że działa usługa SQL Server Browser. Można to zrobić w:

Control Panel > Administrative Tools > Services

enter image description here

Jeśli nie jest uruchomiony, uruchom go, a ustawiona w tryb start automatyczny. (Jak wyżej, możesz zrobić obie te rzeczy z menu prawego przycisku myszy.)

Jeśli nadal nie docierasz do żadnego miejsca, możliwe, że zainstalowałeś program SQL Server 2012 bez ręcznego dodania konta Windows do grupy administratorów . Jeśli tak jest, miejmy nadzieję, że ustawisz tryb mieszany i możesz połączyć się jako sa. W przeciwnym razie trzeba będzie użyć narzędzia jak PSExec.exe uruchomić SSMS jako ZARZĄDZANIE NT \ SYSTEM:

PsExec -s -i "C:\...path to ssms...\Ssms.exe" 

Czy można podłączyć jak sa albo trzeba połączyć za pomocą PsExec, kolejne etapy to:

  1. upewnij się, że konto systemu Windows jest loginem w obszarze Serwer> Bezpieczeństwo> Logowanie. Jeśli go nie ma, dodaj go, klikając prawym przyciskiem myszy Logowania> Nowe logowanie.
  2. upewnij się, że login jest członkiem stałej roli serwera sysadmin. Jeśli tak nie jest, upewnij się, że znajduje się on pod zakładką Server Roles.
+0

Świetnie! Dzięki Save a Day. :) –

+0

A jeśli chcesz podłączyć localDB, po prostu wstaw '' (LocalDb) \ v11.0' w polu tekstowym nazwy serwera. – Moshii

11

Możesz podłączyć SSMS do instancji LocalDB przy użyciu nazwanych potoków.

1 - Get adresu (localdb) przykład uruchamiając następującą komendę: "C: Program Files \ \ Microsoft SQL Server \ 110 \ Tools \ Binn \ SqlLocalDB.exe" info [InstanceName] (jeśli jego wartość domyślna instancja jesteś zainteresowany, podaj V11.0 jak [InstanceName] Możesz napisać go w CMD do pliku tekstowego za pomocą polecenia:

"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe" info v11.0 > C:\db_details.txt 

2 - Skopiuj „instancja nazwa rury "wartość, np. np .: \. \ pipe \ LOCALDB # 1E0FF40B \ tsq l \ query

3 - Wklej nazwę "Instance pipe name" jako nazwę serwera.

+0

Nie działa. Wciąż otrzymuję ten sam komunikat o błędzie podczas łączenia z nazwaną potokiem. – ygoe

+0

Upewnij się, że włączone zostały potoki nazwane - https://www.blackbaud.com/files/support/infinityinstaller/content/installermaster/tkenablenamedpipesandtcpipconnections.htm –

+0

Świetnie. Po włączeniu nazwanych potoków (nikt nie powiedział, że muszę to zrobić), 'sqllocaldb info' zwraca pustą wartość dla instancji nazwanego potoku. Wygląda na to, że zniknęło, teraz powinno coś zrobić. Nadal nie działa. Pomyśl, że zostanę przy SQL Express. Lub PostgreSQL/MySQL, jeśli ma być naprawdę kompaktowy. – ygoe

0

Spróbuj kod:

RegistryKey rKey; 
string InstanceName; 

//use this string for database connection 
string ConString; 
string regPath = @"Software\Microsoft\Microsoft SQL Server\UserInstances"; 
rKey = Registry.CurrentUser.OpenSubKey(regPath); 

if (rKey.GetSubKeyNames().Length != 0) 
{ 
    regPath += @"\" + rKey.GetSubKeyNames()[0]; 
    rKey = Registry.CurrentUser.OpenSubKey(regPath); 
    InstanceName = rKey.GetValue("InstanceName").ToString(); 
    ConString = @"Server=np:\\.\pipe\" + InstanceName + 
     @"\tsql\query;Initial Catalog=RahBord;Trusted_Connection=True"; 
} 
else 
{ 
    Process.Start(@"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe", "c amirLOCALDB -s"); 
    regPath += @"\" + rKey.GetSubKeyNames()[0]; 
    rKey = Registry.CurrentUser.OpenSubKey(regPath); 
    InstanceName = rKey.GetValue("InstanceName").ToString(); 
    ConString = @"Server=np:\\.\pipe\" + InstanceName + @"\tsql\query;Initial Catalog=RahBord;Trusted_Connection=True"; 
} 

Jeśli instancja przestał iść na ten adres:

C:\Program Files\Microsoft SQL Server\110\Tools\Binn\ 

i użyj polecenia

SqlLocalDB.exe s yourInstance 
0

Czy sprawdzono, że protokół TCP włączone dla twojego konkretnego serwera. Wykonaj te instrukcje, aby sprawdzić, czy jest włączona.

http://msdn.microsoft.com/en-us/library/bb909712(v=vs.90).aspx

Po je włączyć należy ponownie uruchomić usługę. Jeśli nie uda się uruchomić, sprawdź dziennik zdarzeń z powodu, dlaczego tak się nie stało. Najczęstszą przyczyną jest to, że istnieje inna usługa (zwykle inna wersja serwera sql) już działająca na tym porcie. W takim przypadku konieczne może być ponowne skonfigurowanie portów serwera. Sprawdź ten wpis na blogu (w tym również obrazów, w jaki sposób sprawdzić, TCP/IP włączony):

http://blogs.msdn.com/b/sqlblog/archive/2009/07/17/how-to-configure-sql-server-to-listen-on-different-ports-on-different-ip-addresses.aspx

Potem zwykle obok barierą jest zapora internetowa lub oprogramowanie zabezpieczające blokuje połączenie. Zdarzyło mi się to nawet w lokalnych instancjach. Uporządkuj to i powinieneś być dobry.

Jeśli po tym wszystkim nadal nie możesz się połączyć, wyszukaj w rejestrze zdarzeń przyczynę.

0
  1. otwarty menedżer zadań, a następnie znaleźć sqlservr.exe na karcie procesu
  2. upewnij się, że kolumna Wiersz poleceń jest widoczna, jeśli nie, kliknij Widok> Wybierz kolumnę> Przewiń w dół i zaznacz Wiersz poleceń> Kliknij OK
  3. zobaczysz "C: \ Program Files \ Microsoft SQL \ 110 \ LocalDB \ Binn \" sqlservr.exe "-c SMSSQL11E.LOCALDB -s LOCALDB # C1E849D0 --etc
  4. Zanotuj LOCALDB # C1E849D0
  5. Otwarte SQL Management Studio (runas administratora), a następnie w imieniu Server wchodzi \\. \ Pipe ** LOCALDB # C1E849D0 ** \ tsql \ query Powinieneś teraz móc przeglądać teraz całą bazę danych wewnątrz LOCALDB
Powiązane problemy