2013-09-13 5 views
5

Прежде всего, я уже знаю, что брандмауэр Windows блокирует мое соединение - я просто не знаю, что с этим делать. Когда я заканчиваю WF, мое удаленное соединение работает. У меня уже есть правило разрешить входящие запросы на порт 1433, и кажется, что это правильный порт, но я не уверен. Теперь для более подробной информации.Не удается подключиться к SQL 2012 удаленно по IP и именованному экземпляру

У меня был SQL Server 2008 R2 на удаленном выделенном сервере и не было проблем с удаленным подключением через SSMS. Но затем я установил SQL Server 2012. Он отлично работает, но я был вынужден создать именованный экземпляр для него во время установки, потому что экземпляр по умолчанию используется SQL08.

Строка подключения ASP.NET, работающая на этом поле, отлично работает и подключается к sql12 без проблем. Ниже приведен пример строки с запутанным соединением:

Сервер = myserver \ MSSQLSSERVER2012; Database = MyDB; User Id = Me; пароль = MyPaSS;

Похоже, что именованный экземпляр использует порт 1433. Я проверил, что браузер SQL активен и работает. У меня есть исключение брандмауэра Windows, которое позволяет использовать sql-сервер и порт 1433, хотя это было раньше, и мне интересно, работает ли это только для отключенного SQL08 (как я могу убедиться, что это работает для SQL12).

Произнесите IP на этот сервер 1.2.3.4

От SSMS Я попытался подключиться к серверу таким образом:

  1. 1.2.3.4
  2. 1.2.3.4 \ MSSQLSSERVER2012
  3. 1.2 .3.4 \ MSSQLSSERVER2012,1433

Ничего не работает. Всегда ошибка:

enter image description here

Я прочитал несколько статей на эту тему, и все они говорят:

  1. включить SQL Browser (сделано)
  2. открыть порт в брандмауэре Windows (кажется, сделано ??)

Итак, как я могу узнать, что именно мне нужно сделать в брандмауэре Windows, чтобы исправить это? Я не могу отключить все это, это общедоступный веб-сервер.

ответ

10

Вот список портов, которые используют функции SQL Server. В зависимости от используемых вами функций/сервисов вам могут потребоваться дополнительные порты TCP/UDP. Также в свойствах сервера> Соединения> подтвердите, что Разрешено удаленные подключения к этому серверу. Инструкции удаленного подключения относятся к 2008 году, так как вы упомянули о том, что отключите брандмауэр, чтобы вы могли подключиться удаленно, тогда я бы предположил, что это не нужно, но не мешало бы дважды проверить это.

Configure the Windows Firewall to Allow SQL Server Access

Enable Remote Connections

+1

Одно из следующих решений разрешило проблему и позволило мне подключиться к удаленному серверу sql: (1) Разрешить удаленные подключения в свойствах mssql; (2) Включить MSSQL exe в winfirewall; (3) Включить браузер SQL в winfirewall; (4) Явно открыт порт 1433 tcp и 1434 уд; (5) SQL-браузер работает как служба. – HerrimanCoder

+1

Поскольку мой SQL Server не был именованным экземпляром, все, что мне нужно было сделать, это разрешить программу SQL Server (sqlservr.exe) через брандмауэр, обеспечить включение удаленных подключений и, наконец, в SQL Server Configuration Manager Включить TCP/IP в Sql Конфигурация сети сервера> Протоколы –

6

Короткий ответ:

  1. SQL экземпляр сервера по умолчанию используется TCP-порт 1433, если не возился с (не делайте этого!). Если у вас есть только экземпляр по умолчанию, это единственный, который вам нужен, я считаю, что клиенты SQL Server не используют службу браузера для поиска экземпляра по умолчанию.
  2. SQL Browser вступает в игру, если используются именованные экземпляры. Это прослушивает порт UDP 1434; он отвечает на запросы номеров портов для именованных экземпляров.
  3. По умолчанию именованные экземпляры используют динамические TCP-порты - каждый раз, когда они запускаются, каждый другой порт. Браузер сортирует это для вас, но это боль через брандмауэр.
  4. Нет причин, по которым вы не должны устанавливать фиксированный порт в диспетчере конфигурации SQL Server для именованного экземпляра (например, TCP-порт 1434 или что-то еще), так что вам нужно только открыть один дополнительный порт для именованного экземпляра.
3

Если вы используете именованные экземпляры, добавить порт 1433 недостаточно.

Вы можете воспроизвести это:

  • установить именованный экземпляр
  • добавить въездной правило 1433
  • удаленных подключений

При попытке подключения вы получите сообщение об ошибке, что сервер Не может быть найдено. Когда вы включаете брандмауэр, все работает, поэтому должен быть другой порт, необходимый для его работы.

Вам необходимо открыть порт 1434 UDP и запустить SQL-браузер, теперь он работает.

+0

Спасибо, человек, это именно то, что было необходимо –

0

Один или несколько из следующих действий решить эту проблему и позволил мне соединиться с моим удаленным сервером SQL:

  1. Разрешить удаленные подключения в MSSQL свойств
  2. Включить MSSQL ех в winfirewall
  3. Включить SQL Browser в winfirewall
  4. Явное открыл порт 1433 TCP и 1434 UDP
  5. SQL Browser работает как служба

Это работало для меня :)

0

Если вы попробовали все выше, и вы все еще получаете эту ошибку - попробуйте добавить имя IP и экземпляра к хост-файл сервера, который вы подключаетесь как это:

111.11.111.1111 INSTANCENAME #ip и Имя экземпляра сервера Подключение к

Это работал для меня после того, как ДНЕЙ происходит через открытие портов, UDP, TCP/IP, и т.д. Я был в состоянии подключиться с помощью строка соединения с IP, но никогда не имя самого экземпляра. Подтвержденная информация для входа была верна, браузер SQL включен и работает. Надеюсь, это поможет.