Разрешить удаленные подключения к SQL Server, Экспресс-выпуск 2012
Я только что установил SQL Server Express 2012 на моем домашнем сервере. Я пытаюсь подключиться к нему из Visual Studio 2012 с моего настольного ПК и неоднократно получаю известную ошибку:
при установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен для разрешения удаленных подключений. (поставщик: именованные каналы Провайдер, ошибка: 40-не удалось открыть соединение с SQL Server)
Что я сделал, чтобы попытаться исправить это:
- запустите Диспетчер конфигурации SQL Server на сервере и включите браузер SQL Server
- добавьте исключение Брандмауэра Windows на сервере для TCP, портов 1433 и 1434 в локальной подсети.
- убедитесь, что у меня есть логин на экземпляре SQL Server для пользователя, которого я вошел в систему как на рабочем столе.
- убедитесь, что я использование проверки подлинности Windows на экземпляре SQL Server.
- повторно перезапустите SQL Server и весь сервер dang.
- вытащить все мои волосы.
как я могу получить SQL Server 2012 Express для разрешения удаленных подключений!?
16 ответов:
Ну рад, что я спросил. Решение, которое я наконец обнаружил, было здесь:
как настроить SQL Server Express для разрешения удаленных подключений tcp / ip на порту 1433?
- запустите Диспетчер конфигурации SQL Server.
- перейдите в раздел Конфигурация сети SQL Server > протоколы для SQLEXPRESS.
- убедитесь, что TCP/IP включен.
до сих пор, так хорошо, и полностью ожидалось. Но затем:
- щелкните правой кнопкой мыши на TCP / IP и выберите свойства.
- убедитесь, что в разделе IP2 IP-адрес установлен на IP-адрес компьютера в локальной подсети.
- прокрутите вниз до IPAll.
- убедитесь в том, что динамические порты TCP и пробел. (У меня был установлен какой-то 5-значный номер порта.)
- убедитесь в том, что TCP-порт установлено значение 1433. (Мой был пусто.)
(кроме того, если вы выполните следующие действия, это не необходимо включить браузер SQL Server, и вам нужно только разрешить порт 1433, а не 1434.)
эти дополнительные пять шагов-это то, что я не могу вспомнить, когда-либо приходилось делать в предыдущей версии SQL Server, Express или иначе. Они, кажется, были необходимы, потому что я использую именованный экземпляр (myservername\SQLEXPRESS) на сервере вместо экземпляра по умолчанию. Видеть здесь:
настройка сервера для прослушивания определенного TCP-порта (диспетчер конфигурации SQL Server)
правильный способ подключения к удаленному SQL Server (без открытия UDP-порта 1434 и включения браузера SQL Server) использовать IP и порт вместо именованный экземпляр.
использование ip и порта вместо именованного экземпляра также безопаснее, так как это уменьшает площадь поверхности атаки.
возможно, 2 фотографии говорят 2000 слов...
этот метод использует указанный порт (это то, что большинство людей хотят, чтобы я верить.).
этот метод требует открытия UDP-порта 1434 и запуска браузера SQL Server..
Еще Одна Вещь...
Kyralessa предоставляет отличную информацию, но у меня есть еще одна вещь, чтобы добавить, где я был в тупике даже после этой статьи.
В разделе Конфигурация сети SQL Server > протоколы для сервера > TCP / IP включен. Щелкните правой кнопкой мыши TCP / IP и выберите Свойства. Под IP-адреса, необходимо установить возможность Да для каждого типа подключения, который вы используете.
вы можете использовать это для решения этой проблемы:
перейдите в меню Пуск > Выполнить и запустите CLICONFG.ИСПОЛНЯЕМЫЙ.
протокол именованных каналов будет первым в списке.Понизьте его, и повысьте TCP / IP.
тщательно протестируйте приложение.
Я надеюсь, что это поможет.
вы также можете установить
слушайте все нет
в диалоговом окне протокола, а затем в IP-адресе IP1 (скажем)
установлено значение Да,
определить IP-адрес УГ,
установите TCP Dynamic в пустой и
TCP-порт до 1433 (или что-то еще)
У меня была эта проблема недавно. 2015
решается путем открытия диспетчер конфигурации SQL Server
- конфигурация сети SQL Server - > протоколы для SQLEXPRESS
- свойства на TCP / IP - > вкладка IP-адреса
- все остается по умолчанию, только установите IPALL: TCP-порт в 1433
можно подключиться с помощью диспетчер SQL Server на машине: [hostaddress], 1433
пример:
эта статья помогла мне...
как включить удаленные подключения в SQL Server
все в SQL Server было настроено, моя проблема заключалась в том, что брандмауэр блокировал порт 1433
на моей установке SQL Server 2012 Developer Edition, установленной с настройками по умолчанию, мне просто нужно было загрузить диспетчер конфигурации SQL Server -> конфигурация сети SQL Server -> протоколы для MSSQLSERVER и изменить TCP/IP с отключенного на включенный.
Мне пришлось добавить правило входящего порта брандмауэра, чтобы открыть порт UDP 1434. Это один браузер Sql Server слушает.
Я предпочитаю способ "Rosdi Kasim", поскольку это не требует детальной настройки на IP.
Я определенно забуду его снова, когда я снова попытаюсь поднять другой сервер.
держите его просто глупым (поцелуй), просто включите службу браузера Sql Server, а затем добавьте \SQLEXPRESS за IP при подключении сервера.
прямое использование IP без "\SQLEXPRESS" было моей точкой отказа, поскольку он не использует значение по умолчанию порт.
спасибо.
у меня была такая же проблема с SQL Server 2014 локально установленным именованным экземпляром. Подключение с помощью
FQDN\InstanceNameне удалось бы, при подключении с помощью только myhostname\InstanceNameработали. Например: подключение с помощьюmycomputername\sql2014работала, но с помощьюmycomputername.mydomain.org\sql2014не. DNS разрешен правильно, TCP / IP был включен в Диспетчере конфигурации SQL, добавлены правила брандмауэра Windows (а затем отключил брандмауэр для тестирования, чтобы убедиться, что он ничего не блокирует), но ни один из них не исправил проблему.наконец, я должен был начать в "браузер SQL Server" служба на SQL Server и это исправило проблему подключения.
Я никогда не понимал, что Служба браузера SQL Server фактически помогала SQL Server в создании соединений; у меня создалось впечатление, что она просто помогла заполнить выпадающие списки, когда вы нажали "обзор дополнительных" серверов для подключения, но на самом деле это помогает выровнять запросы клиентов с правильным портом # для использования, если порт # явно не назначается (подобно тому, как привязки веб-сайтов помогают устранить одну и ту же проблему на веб-сервере IIS, на котором размещается несколько веб-сайтов).
этот элемент подключения дал мне ключ к службе браузера SQL Server: https://connect.microsoft.com/SQLServer/feedback/details/589901/unable-to-connect-on-localhost-using-fqdn-machine-name
- при использовании wstst05\sqlexpress в качестве имени сервера клиентский код отделяется имя машины из имени экземпляра и wstst05 является по сравнению с именем netbios. Я не вижу никаких проблем для них, чтобы соответствовать и соединение считается локальным. Оттуда мы извлекаем необходимая информация без связаться с браузером SQL и подключиться к Экземпляр SQL через общую память без каких либо проблем.
- при использовании wstst05.капатест.локальную папку\sqlexpress, клиент кода не выполняется сопоставление имен (wstst05.капатест.местный) к netbios-имя (wstst05) и считает соединение "удаленным". Это по дизайну и мы обязательно рассмотрим вопрос об улучшении этого в будущее. Во всяком случае, из-за рассмотрения удаленного подключения и факта что это именованный экземпляр, клиент решает, что он должен использовать SQLBrowser для разрешения имен. Он пытается связаться с браузером SQL wstst05.капатест.локальный (UDP-порт 1434) и, по-видимому, эта часть терпит неудачу. Отсюда и ошибка, которую вы получаете.
причина для службы "браузер SQL Server" из TechNet (выделено мной):https://technet.microsoft.com/en-us/library/ms181087(v=sql. 120). aspx
из раздела "использование браузера SQL Server":
если служба браузера SQL Server не запущена, вы все еще можете для подключения к SQL Server, если указан правильный номер порта или именованный канал. Например, вы можете подключиться к экземпляру по умолчанию SQL Server с TCP / IP, если это так работает на порту 1433. Однако,если служба обозревателя SQL Server не запущена, следующее соединения не работают:
- любой компонент, который пытается подключиться к именованному экземпляру без полного указания всех параметров (например, порт TCP / IP или имя труба).
- любой компонент, который создает или передает информацию о сервере\экземпляре, которая впоследствии может быть использована другими компонентами для повторного подключения.
- подключение к именованному экземпляру без указания номера порта или трубы.
- DAC для именованного экземпляра или экземпляра по умолчанию, если не используется порт TCP/IP 1433.
- служба перенаправления OLAP.
- перечисление серверов в среде SQL Server Management Studio, Enterprise Manager или Query Analyzer.
если вы используете SQL Server в сценарии клиент-сервер (например, когда ваше приложение доступ к SQL Server по сети),если при остановке или отключении службы обозревателя SQL Server необходимо назначить конкретный номер порта для каждого экземпляра и написать свой клиент код приложения, чтобы всегда использовать этот номер порта. Этот подход имеет следующие проблемы:
- вы должны обновить и поддерживать код клиентского приложения, чтобы убедиться, что он подключается к соответствующему порту.
- порт, который вы выбираете для каждого экземпляра, может использоваться другая служба или приложение на сервере, вызывающее экземпляр SQL Сервер будет недоступен.
и дополнительная информация из той же статьи из раздела "Как работает браузер SQL Server":
, потому что только один экземпляр SQL Server может использовать порт или канал, для именованных назначаются различные номера портов и имена каналов экземпляры, включая SQL Server Express. По умолчанию, когда включено, как именованные экземпляры, так и SQL Server Express настроены на используйте динамические порты, то есть доступный порт назначается при SQL Сервер запускается. Если вы хотите, определенный порт может быть назначен экземпляр SQL Server. При подключении клиенты могут указать специфический порт; но если порт динамически назначен, то порт номер может измениться в любое время перезапуска SQL Server, поэтому правильный порт номер неизвестен клиенту. ... Когда клиенты SQL Server запрашивают Ресурсы SQL Server, клиентская сеть библиотека отправляет сообщение UDP на сервер через порт 1434. Браузер SQL Server отвечает с помощью Порт TCP / IP или именованный канал запрошенного экземпляра. Сеть библиотека в клиентском приложении затем завершает соединение с помощью отправка запроса на сервер с помощью порта или именованного канала нужный экземпляр
Мне пришлось добавить порт через Configuration Manager и добавить номер порта в моем sql-соединении [сервер]\[имя экземпляра БД],1433
обратите внимание, (запятая) между instancename и port
у меня была другая проблема от того, что все ответы до сих пор!
Я должен начать с того, что у меня это было в Visual Studio, а не в SQL Server Express, но решение должно быть точно таким же.
в моем случае база данных была запущена на нестандартный порт. Убедитесь, что подключаемый порт совпадает с портом, на котором работает база данных. Если существует несколько экземпляров SQL server, проверьте правильный.
еще одна вещь, чтобы проверить, что вы правильно именованный экземпляр!
эта статья очень полезна при устранении проблем с подключением: как устранить неполадки при подключении к SQL Server Database Engine




Comments