Простой способ проверить подключение к SQL Server с клиента


18

В целях устранения неполадок я хотел бы иметь возможность проверить, может ли клиент подключиться к экземпляру SQL Server, независимо от приложения, которое, возможно, не может подключиться к SQL Server.

Есть ли простой способ (это означает, что нет необходимости устанавливать стороннее программное обеспечение), чтобы сделать это с помощью системных инструментов Windows по умолчанию? Возможно использование скриптов или сетевых приложений?


на моем ноутбуке я могу создать соединение sqlserver odbc и проверить доступ к sqlserver. Но я не знаю, можно ли найти драйвер sqlserver odc на всех клиентах, настроенных для доступа к sqlserver. но если он будет найден, это будет следующий тест после проверки доступности сервера sqlserver prot с помощью telnet.
чудо173

Ответы:


15

Если сервер использует TCP / IP, то простой способ состоит в том, чтобы просто подключиться к порту SQL Server и посмотреть, подключается ли он. По умолчанию это порт 1433, поэтому он должен работать:

telnet servername 1433

Это, вероятно, будет уместным в большинстве случаев.

Если он использует другой порт или динамические порты (общие для именованного экземпляра), вам необходимо определить, какой порт он прослушивает в данный момент. Проверьте диспетчер конфигурации SQL Server, чтобы увидеть, является ли это конкретным портом или динамическими портами. Если он использует динамические порты, то, если у вас нет нескольких экземпляров на сервере, netstat -abnвозможно, самый простой способ найти то, что он использует. В противном случае просмотрите журнал событий Windows или журнал ошибок SQL Server, чтобы получить сообщение о том, какой порт используется экземпляром.

Если SQL Server использует именованные каналы, то, я думаю, если вы сможете получить доступ к общим папкам на компьютере, у вас будет достаточное сетевое подключение. В этой статье говорится, что вы можете пойти дальше и попробовать подключиться к общему ресурсу IPC $:

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

net use \\servername\IPC$

Это написано для SQL Server 2000, но я не думаю, что этот аспект сильно изменился, если вообще изменился.


2
Не видно, может ли клиент «подключиться к экземпляру SQL Server». Это просто проверка, чтобы увидеть, слушает ли порт.
Томас Стрингер

4
... который проверяет, может ли клиентская система «подключаться к экземпляру SQL Server, независимо от приложения, которое, возможно, не может подключиться к SQL Server». Все, что не связано с сетевым подключением, связано с проблемами приложений.
db2

22

Простой метод проверки подключения SQL - создать пустой текстовый файл с расширением «UDL». Вы можете создать его в блокноте. И это может иметь любое имя. Я использую "TestSQL.UDL"

Сохраните его на рабочем столе компьютера с Windows и дважды щелкните по нему.

Появится диалоговое окно «Свойства ссылки на данные», где вы можете ввести IP-адрес сервера SQL, а также имя пользователя и пароль SQL.

Нажмите кнопку «Проверить соединение», чтобы увидеть, можете ли вы подключиться.

введите описание изображения здесь


Обязательно перейдите на вкладку «Поставщик» и выберите правильного поставщика OLE DB: «Поставщик Microsoft OLE DB для SQL Server»
DaveB

Дэйв, добро пожаловать, и хороший ответ. Вы можете отредактировать свой пост (левый нижний угол), чтобы добавить эту дополнительную информацию. Затем удалите свой комментарий.
Майкл Грин

Это действительно хороший ответ, потому что он работает практически на любом сервере, независимо от того, что или что не установлено. Все, что вам нужно, это Блокнот. Спасибо за этот замечательный ответ, который действительно помог мне убедить моего клиента в том, что SQL-соединение работает.
Робник

8

Если у вас есть Microsoft.SqlServer.Smoсборка в вашем GAC на локальном компьютере, это легко сделать с помощью 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..."
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.