Łatwy sposób na sprawdzenie łączności z programem SQL Server z klienta


18

Do celów rozwiązywania problemów chciałbym móc sprawdzić, czy klient może połączyć się z wystąpieniem programu SQL Server, niezależnie od aplikacji, która prawdopodobnie nie może połączyć się z programem SQL Server.

Czy istnieje prosty sposób (tzn. Nie trzeba instalować oprogramowania innych firm), aby to zrobić przy użyciu domyślnych narzędzi systemu Windows? Być może używasz skryptów lub aplikacji sieciowych?


na moim notebooku mogę utworzyć połączenie odbc z serwerem sqlserver i przetestować dostęp do serwera sqlserver. Ale nie wiem, czy sterownik odc sqlserver można znaleźć na wszystkich klientach skonfigurowanych do uzyskiwania dostępu do sqlserver. ale jeśli można go znaleźć, byłby to kolejny test po sprawdzeniu osiągalności protokołu sqlserver serwera za pomocą telnetu.
miracle173

Odpowiedzi:


15

Jeśli serwer używa protokołu TCP / IP, najprostszym sposobem jest po prostu telnet do portu SQL Server i sprawdzenie, czy się łączy. Domyślnie jest to port 1433, więc powinno to działać:

telnet servername 1433

To prawdopodobnie będzie odpowiednie w większości przypadków.

Jeśli używa innego portu lub portów dynamicznych (wspólnych dla nazwanego wystąpienia), musisz określić, na którym porcie nasłuchuje. Sprawdź menedżera konfiguracji SQL Server, aby zobaczyć, czy jest to konkretny port, czy porty dynamiczne. Jeśli używa portów dynamicznych, to dopóki nie masz wielu instancji na serwerze, netstat -abnjest to prawdopodobnie najprostszy sposób na znalezienie tego, czego używa. W przeciwnym razie przejrzyj dziennik zdarzeń systemu Windows lub dziennik błędów programu SQL Server, aby uzyskać komunikat wskazujący, który port jest używany przez instancję.

Jeśli SQL Server używa Nazwanych potoków, to uważam, że jeśli masz dostęp do udziałów na komputerze, masz odpowiednią łączność sieciową. Ten artykuł mówi, że możesz pójść dalej i spróbować połączyć się z udziałem IPC $:

http://msdn.microsoft.com/en-us/library/aa275787%28v=sql.80%29.aspx

net use \\servername\IPC$

To jest napisane dla SQL Server 2000, ale nie sądzę, że ten aspekt zmienił się znacznie, jeśli w ogóle.


2
To nie sprawdza, czy klient może „połączyć się z wystąpieniem programu SQL Server”. To tylko testowanie, czy port nasłuchuje.
Thomas Stringer

4
... który sprawdza, czy system kliencki „może połączyć się z wystąpieniem programu SQL Server, niezależnie od aplikacji, która prawdopodobnie nie może połączyć się z programem SQL Server”. Wszystko poza łącznością sieciową dotyczy problemów z aplikacjami.
db2

22

Prostą metodą testowania łączności SQL jest utworzenie pustego pliku tekstowego z rozszerzeniem „UDL”. Możesz go utworzyć w Notatniku. I może mieć dowolną nazwę. Używam „TestSQL.UDL”

Zapisz go na pulpicie komputera z systemem Windows i kliknij go dwukrotnie.

Pojawi się okno dialogowe „Właściwości łącza danych”, w którym możesz wpisać adres IP serwera SQL, a także nazwę użytkownika i hasło SQL.

Kliknij przycisk „Testuj połączenie”, aby sprawdzić, czy możesz się połączyć.

wprowadź opis zdjęcia tutaj


Pamiętaj, aby kliknąć kartę Provider i wybrać właściwego dostawcę OLE DB: „Microsoft OLE DB Provider for SQL Server”
DaveB 20.04.2016

Dave, witam i dobra odpowiedź. Możesz edytować swój post (lewy dolny róg), aby dodać te dodatkowe informacje. Następnie usuń swój komentarz.
Michael Green

To naprawdę świetna odpowiedź, ponieważ działa na prawie każdym serwerze, niezależnie od tego, co lub co nie jest zainstalowane. Wszystko czego potrzebujesz to Notatnik. Dzięki za tę wspaniałą odpowiedź, naprawdę pomogło mi przekonać mojego klienta, że ​​połączenie SQL działa.
robnick

8

Pod warunkiem, że masz Microsoft.SqlServer.Smozestaw w GAC na komputerze lokalnym, można to łatwo zrobić za pomocą programu PowerShell:

[Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Smo') | Out-Null

$server = New-Object Microsoft.SqlServer.Management.Smo.Server("YourSqlServerName")

# do a simple operation to see if you can get data
Try {
    $server.Version | Out-Null
    Write-Host "SQL Server connection successful!!!"
}
Catch [System.Exception] {
    Write-Host "Error connecting to SQL Server..."
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.