Pro účely odstraňování problémů bych chtěl zkontrolovat, zda se klient může připojit k instanci serveru SQL, nezávisle na aplikaci, která se pravděpodobně nemůže připojit k serveru SQL.
Existuje snadný způsob (to znamená, že nemusíte instalovat software třetích stran), jak to provést pomocí výchozích systémových nástrojů Windows? Možná používáte skripty nebo síťové aplikace?
Pokud server používá TCP/IP, pak je jednoduchým způsobem telnet k portu serveru SQL a uvidíte, zda se připojuje. Ve výchozím nastavení je port 1433, takže by to mělo fungovat:
telnet servername 1433
Ve většině případů to bude pravděpodobně vhodné.
Pokud používá jiný port nebo dynamické porty (společné s pojmenovanou instancí), musíte určit, na kterém portu je právě naslouchán. Zkontrolujte správce konfigurace serveru SQL a zkontrolujte, zda se jedná o konkrétní port nebo dynamické porty. Pokud používáte dynamické porty, pak pokud nemáte na serveru více instancí, netstat -abn
je pravděpodobně nejjednodušší způsob, jak najít to, co používá. V opačném případě kopejte protokolem událostí systému Windows nebo protokolem chyb serveru SQL pro zprávu označující port, který instance používá.
Pokud SQL Server používá Named Pipes, pak I věřím , pokud máte přístup k sdíleným položkám na počítači, máte dostatečné síťové připojení. Tento článek uvádí, že můžete jít dále a zkusit se připojit ke sdílené složce IPC $:
http://msdn.Microsoft.com/en-us/library/aa275787%28v=sql.80%29.aspx
Net Use \\servername\IPC$
To je napsáno pro SQL Server 2000, ale já si nemyslím, že se tento aspekt hodně změnil, pokud vůbec.
Jednoduchou testovací metodou pro připojení SQL je vytvoření prázdného textového souboru s příponou souboru „UDL“. Můžete jej vytvořit v programu Poznámkový blok. A může mít libovolné jméno. Používám "TestSQL.UDL"
Uložte jej na plochu počítače se systémem Windows a poklepejte na něj.
Objeví se dialogové okno „Vlastnosti datového spojení“, kde můžete zadat IP adresu serveru SQL a také uživatelské jméno a heslo SQL.
Klepnutím na tlačítko „Testovat připojení“ zjistíte, zda se můžete připojit.
Za předpokladu, že máte Microsoft.SqlServer.Smo
Montáž do vašeho GAC na místním počítači, to lze snadno provést pomocí 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..."
}