Я не могу подключиться к своим серверам базы данных SQL через IP-адрес

45

Я настроил сервер под управлением Windows Server 2008 и установил SQL Server 2008 Express.

Я могу подключиться к базе данных SQL Server Express компьютера через MACHINENAME/SQLEXPRESS.

Однако, когда мы подключаемся через любое программное обеспечение или сценарий с использованием IP-адреса, соединение не будет разрешено.

Я пытался:

  • Отключение брандмауэра
  • Разрешение удаленных подключений для базы данных SQL.
  • Включение TCP / IP в конфигурации SQL.

Когда мы пытаемся подключиться через программное обеспечение «SQL Server Management Studio», мы получаем следующее сообщение:

Сообщение об ошибке:

Произошла ошибка при установлении соединения с сервером. При подключении к SQL Server 2005 этот сбой может быть вызван тем, что в настройках по умолчанию SQL Server не разрешает удаленные подключения. (поставщик: поставщик TCP, ошибка: 0 - невозможно установить соединение, поскольку целевая машина активно отказывала в этом.) (Microsoft SQL Server, ошибка: 10061)

Соединение с сервером было успешно установлено, но во время входа в систему произошла ошибка. (поставщик: поставщик TCP, ошибка: 0 - установленное соединение было прервано программным обеспечением на вашем хост-компьютере.) (Microsoft SQL Server, ошибка: 10053)

Не могли бы вы сообщить мне, когда вы освободитесь, чтобы мы могли посмотреть, потому что я, кажется, узнаю, где, я изменил детали согласно некоторой информации, которую мне отправил UK Fast, но они сказали: «Это не входит в сферу поддержки» поэтому они не могут помочь дальше.

С нетерпением жду Вашего ответа.

Шон Суолс
источник
Вы пытались добавить номер порта при подключении?
Вы пытаетесь подключиться к «192.168.0.1/SQLEXPRESS» (где 192.168.0.1 - это действительно IP-адрес вашего сервера ), или вы не указали имя экземпляра?
Роуланд Шоу,
2
Вы действительно используете прямую косую черту, /а не обратную косую черту `\`?
Аарон Бертран

Ответы:

78

Ваш SQL Server установлен как именованный экземпляр, поэтому в первую очередь попытайтесь подключиться к серверу , используя следующее имя сервера: IP Address\SQLEXPRESS.
Когда вы устанавливаете SQL Server в качестве именованного экземпляра, он по умолчанию использует динамические порты TCP / IP, поэтому невозможно подключиться к нему без указания имени экземпляра (только IP-адрес). Если вам нужно подключиться к вашему серверу без использования имени экземпляра, вы должны перенастроить свой сервер для использования статического порта TCP. Для этого выполните следующие действия:

  1. открыть диспетчер конфигурации SQL Server;
  2. переключиться на SQL Server Network Configuration | Protocols for SQLEXPRESS;
  3. дважды щелкните по TCP/IPпротоколу;
  4. выберите Yesзначение в Enabledполе;
  5. переключиться на IP Addressesвкладку;
  6. найти IPAllраздел;
  7. очистите TCP Dynamic Portsполе в этом разделе;
  8. укажите 1433значение в TCP Portполе:
    введите описание изображения здесь
  9. перезагрузите сервер
    Попробуйте подключиться к серверу, используя только его IP-адрес.
levitologista
источник
7
Спасибо за предоставление этой информации, она отлично работает, за исключением одной вещи. В студии управления sql мне все еще нужно предоставить порт для подключения к серверу, например, xxxx \ instance, 1433. Я думаю, что это немного странно, так как я использую стандартный порт.
Томас Янссон
1
Это сработало для меня, за исключением того, что было совершенно противоположно тому, что сообщал @TomasJansson: оно работает в Management Studio без номера порта, но мне нужно указать его в строке подключения, даже если я использую порт по умолчанию (1433).
lpacheco
В дополнение к отличному ответу выше, в SQL Server 2017 я понял, что нельзя оставлять поле пароля пользователя (особенно sa) пустым. Убедитесь, что вы установили пароль, иначе он не будет подключен.
aLearner
ИСПОЛЬЗУЙТЕ netstat -a -b и найдите sqlservr.exe и убедитесь, что порт равен 1433. Не всегда так. В противном случае вы сойдете с ума.
jwize
8

Вы должны включить, следуя для меня проблему, решенную путем включения и перезапуска всей службы.

  • Общая память
  • TCP / IP
  • Именованные трубы

Именованные каналы конфигурации SQL Server

Baljeetsingh
источник
8

Используя SQL Server Express 2017, в дополнение к ответам выше, при попытке подключения через порт убедитесь, что вы используете синтаксис запятой , а не синтаксис двоеточия, т. Е.

 MyServerName,1433\InstanceName

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

штифтик
источник
1
Это исправило это для меня (перемещение порта между именем сервера и именем экземпляра). Вход в порт в конце не сработал.
масоспагетти
1

Я смог подключиться удаленно, явно указав номер динамического порта, однако это явно не идеально.

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

RobSiklos
источник
0

Просто добавлю к тому, что было сказано ранее. У меня была та же проблема с невозможностью подключения к серверу (клиент и сервер на одном рабочем столе), и я пробежал все шаги, перечисленные здесь, пытаясь это исправить. Однако в конце концов я выяснил, в чем проблема. Все, что мне нужно было сделать, это зайти в студию управления SQL-сервером и щелкнуть «Службы SQL-сервера», а затем щелкнуть один раз по серверу, к которому мне нужно было подключиться. Затем нажмите зеленую кнопку «Выполнить». Я не уверен, что это было конкретно для меня, так как мой компьютер работал и имел доступ к серверу, надеюсь, он поможет кому-то еще там!

Где кнопка запуска / запуска

Kuolema
источник
1
как же этот комментарий был настолько недооценен? простой и фиксированной мой вопрос asswell
Cavid Hummatov