Я пытаюсь подключиться к удаленному экземпляру MS SQL Server 2008 SP3 x86, используя его имя.
На первый взгляд кажется, что все работает хорошо (например, можно подключиться к серверу локально и успешно использовать telnet-порт удаленно), но есть кое-что, чего я не могу понять ...
Эта линия должна соединить нас с дефолт экземпляр удаленного SQL Server:
osql -S ServerIP -d MyDatabase /U sa -P MyPassword
и он делает свое дело, но следующий:
osql -S ServerIP\MyInstance -d MyDatabase /U sa -P MyPassword
заканчивается следующей ошибкой:
[SQL Native Client]SQL Network Interfaces: Error Locating Server/Instance
Specified [xFFFFFFFF].
[SQL Native Client]Login timeout expired
[SQL Native Client]An error has occurred while establishing a connection to
the server. When connecting to SQL Server 2005, this failure may be caused by
the fact that under the default settings SQL Server does not allow remote
connections.
Единственный экземпляр, работающий на сервере, - это MyInstance, который (я полагаю) установлен по умолчанию.
Не могли бы вы уделить время объяснению проблемы.
/ selffix /
Ключом к пониманию проблемы было прочитать о "Браузер SQL Server" служба.
http://msdn.microsoft.com/en-us/library/ms181087
В частности:
Однако, если служба браузера SQL Server не запущена, следующие подключения не работают:
• Connecting to a named instance without providing the port number or pipe.
Потребовалось неслучайно запустить службу и открыть UDP-порт 1434 в брандмауэре, чтобы все работало правильно.
Кстати, для тех, кто вроде меня может наткнуться на проверку, открыт ли UDP-порт, вот ответ: Сканер портов командной строки PortQry.
http://www.microsoft.com/download/en/confirmation.aspx?id=17148
Благодаря https://serverfault.com/a/35225/117216 за эту полезную информацию.
... а также убедитесь, что ваш экземпляр сервера настроен на автоматический запуск и запускается из services.msc