Включить удаленные подключения для SQL Server Express 2012

Я только что установил SQL Server Express 2012 на свой домашний сервер. Я пытаюсь подключиться к нему из Visual Studio 2012 с настольного компьютера и неоднократно получаю известную ошибку:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Что я сделал, чтобы попытаться это исправить:

Run SQL Server Configuration Manager on the server and enable SQL Server Browser Add a Windows Firewall exception on the server for TCP, ports 1433 and 1434 on the local subnet. Verify that I have a login on the SQL Server instance for the user I'm logged in as on the desktop. Verify that I'm using Windows Authentication on the SQL Server instance. Repeatedly restart SQL Server and the whole dang server. Pull all my hair out.

How can I get SQL Server 2012 Express to allow remote connections!?

 jleach03 янв. 2016 г., 16:35
И если вы используете виртуальную машину Azure, не забудьте также открыть порт через портал управления Azure (который действует как внешний брандмауэр для собственного брандмауэра виртуальной машины ...). Вот так:stackoverflow.com/questions/34251382/…
 alansiqueira2726 нояб. 2014 г., 22:23
Я решил, включив службу браузера SQL Server: D. Спасибо за публикацию.
 Michael17 февр. 2015 г., 11:34
Разблокировка 1433 UDP-порта мне помогла!
 StuartLC13 мар. 2018 г., 06:13
Для тех, кто интересуется, куда исчез Sql Server Configuration Manager в более новых версиях,head on over here

Ответы на вопрос(17)

У меня была эта проблема недавно.2015 Aug

Решено открытиемSQL Server Configuration Manager

SQL Server Network Configuration -> Protocols for SQLEXPRESS Properties on TCP/IP -> IP Adresses tab Everything stays default, only set IPALL: TCP Port to 1433

Можно подключиться к сSQL Server Manager к машине:[hostaddress], 1433

Пример:

enter image description here

 06 окт. 2017 г., 19:34
Спасибо, эта работа для меня !!!!

Вы также можете установить

Listen All to NO

в диалоговом окне протокола затем в IP-адрес IP1 (скажем)

set enabled to Yes,

define yr IP address,

set TCP Dynamic to Blank and

TCP port to 1433 (or whatever)

 09 янв. 2014 г., 10:43
Выполнение этого в Windows 8.1 с установленным SQL 2012 Express SP1 приводило к зависанию SQL при запуске :(
 04 апр. 2014 г., 15:37
Я установил все записи IP 1, 2, ... на enabled + active, удаленный динамический, стертый порт и установил IPAll port на 1433, затем мне пришлось добавить правила для открытия TCP 1433 и UPD 1434 в брандмауэре (1434 не требуется, если не используется имя, а только номер порта).

Эта статья помогла мне ...

Как включить удаленные подключения в SQL Server

Все в SQL Server было настроено, моя проблема была в том, что брандмауэр блокировал порт 1433

 26 авг. 2014 г., 11:11
+1 за разблокировку порта 1433

В моем случае база данных работала на нестандартном порту. Убедитесь, что порт, к которому вы подключаетесь, совпадает с портом, на котором работает база данных. Если есть больше экземпляров SQL-сервера, проверьте правильный.

Правильный способ подключения к удаленному SQL Server(without opening UDP port 1434 and enabling SQL Server Browser) это использоватьip and port вместоnamed instance.

Использование ip и порта вместо именованного экземпляра также безопаснее, так как уменьшает площадь атаки.

Возможно, 2 картины говорят 2000 слов ...

This method uses the specified port (this is what most people want I believe)..

enter image description here

This method requires opening UDP port 1434 and SQL Server Browser running..

enter image description here

 05 июн. 2013 г., 12:41
Я добавил некоторые пояснения к своему ответу, чтобы избежать недоразумений.
 Ryan Lundy05 июн. 2013 г., 09:54
Можете ли вы уточнить, что вы имеете в виду, говоря, что это «правильно»? способ сделать это?
 10 мар. 2014 г., 11:06
Спасибо;) Если у вас нет доступа для запуска службы браузера, вы должны указать порт.
 05 июн. 2013 г., 12:18
@Kyralessa Ха! ... теперь, когда я снова трезвый после 4-5 часов работы за волосы, пытаясь соединиться с моим удаленным экземпляром, я, вероятно, должен объяснить, что это "правильно" здесь подразумевается, чтобы быть прочитанным из моего контекста. Это «неверно» подключиться, используя имя экземпляра, так как я не включил браузер SQL Server.
 24 янв. 2015 г., 10:52
плюс 1 за то, что MS использует запятую вместо столбцов в качестве разделителя для номера порта

Вы можете использовать это, чтобы решить эту проблему:

Перейти к START & gt; ВЫПОЛНИТЬ и запуститьCLICONFG.EXE.

Протокол Named Pipes будет первым в списке. Удалите его и продвигайте TCP / IP.

Протестируйте приложение тщательно.

Я надеюсь, что это поможет.

 20 янв. 2016 г., 23:35
Это настраиваетCLIENT использовать TCP / IP, а не сервер.
 04 мар. 2018 г., 12:55
OMG, это работает !! только что вошел, чтобы проголосовать за этот ответ. Спасибо
 14 июл. 2014 г., 14:50
Вау, что жемчужина ... спасибо. Никогда не знал, что даже существует.

Еще одна вещь, которую нужно проверить, это то, что вы правильно написали именованный экземпляр!

Эта статья очень полезна для устранения проблем с подключением:Как устранить неполадки подключения к ядру базы данных SQL Server

One More Thing...

Kyralessa предоставляет отличную информацию, но я хочу добавить еще одну вещь, в которой я был озадачен даже после этой статьи

Под Сетевой конфигурацией SQL Server & gt; Протоколы для сервера & gt; TCP / IP включен. Щелкните правой кнопкой мыши TCP / IP и выберите свойства. Под IP-адресами необходимо установить для параметра «Включено» значение «Да» для каждого используемого типа подключения.

enter image description here

У меня была такая же проблема с SQL Server 2014 локально установленным именованным экземпляром. Подключение с помощьюFQDN\InstanceName потерпит неудачу при подключении, используя только мойhostname\InstanceName работал. Например: подключение с использованиемmycomputername\sql2014 работал, но используяmycomputername.mydomain.org\sql2014 не. DNS разрешен правильно, TCP / IP был включен в SQL Configuration Manager, добавлены правила брандмауэра Windows (а затем отключил брандмауэр для тестирования, чтобы убедиться, что он ничего не блокирует), но ни один из них не устранил проблему.

Наконец, мне нужно было начать & quot;SQL Server Browser& Quot; службы на 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

when you use wstst05\sqlexpress as a server name, the client code separates the machine name from the instance name and the wstst05 is compared against the netbios name. I see no problem for them to match and the connection is considered local. From there, we retrieve the needed information WITHOUT contacting SQL Browser and connect to the SQL instance via Shared Memory without any problem. when you use wstst05.capatest.local\sqlexpress, the client code fails the comparison of the name (wstst05.capatest.local) to the netbios name (wstst05) and considers the connection "remote". This is by design and we will definitely consider improving this in the future. Anyway, due to considering the connection remote and the fact that it is a named instance, client decides that it needs to use SQLBrowser for name resolution. It attempts to contact SQL Browser on wstst05.capatest.local (UDP port 1434) and apparently that part fails. Hence the error you get.

Причина "браузера SQL Server" сервис от TechNet (акцент добавлен мной):https://technet.microsoft.com/en-us/library/ms181087(v=sql.120).aspx

Из & quot; Использование браузера SQL Server & quot; раздел:

If the SQL Server Browser service is not running, you are still able to connect to SQL Server if you provide the correct port number or named pipe. For instance, you can connect to the default instance of SQL Server with TCP/IP if it is running on port 1433. However, if the SQL Server Browser service is not running, the following connections do not work:

Any component that tries to connect to a named instance without fully specifying all the parameters (such as the TCP/IP port or named pipe). Any component that generates or passes server\instance information that could later be used by other components to reconnect. Connecting to a named instance without providing the port number or pipe. DAC to a named instance or the default instance if not using TCP/IP port 1433. The OLAP redirector service. Enumerating servers in SQL Server Management Studio, Enterprise Manager, or Query Analyzer.

If you are using SQL Server in a client-server scenario (for example, when your application is accessing SQL Server across a network), if you stop or disable the SQL Server Browser service, you must assign a specific port number to each instance and write your client application code to always use that port number. This approach has the following problems:

You must update and maintain client application code to ensure it is connecting to the proper port. The port you choose for each instance may be used by another service or application on the server, causing the instance of SQL Server to be unavailable.

И больше информации из той же статьи из раздела «Как работает браузер SQL Server». раздел:

Because only one instance of SQL Server can use a port or pipe, different port numbers and pipe names are assigned for named instances, including SQL Server Express. By default, when enabled, both named instances and SQL Server Express are configured to use dynamic ports, that is, an available port is assigned when SQL Server starts. If you want, a specific port can be assigned to an instance of SQL Server. When connecting, clients can specify a specific port; but if the port is dynamically assigned, the port number can change anytime SQL Server is restarted, so the correct port number is unknown to the client. ... When SQL Server clients request SQL Server resources, the client network library sends a UDP message to the server using port 1434. SQL Server Browser responds with the TCP/IP port or named pipe of the requested instance. The network library on the client application then completes the connection by sending a request to the server using the port or named pipe of the desired instance

Я предпочитаю способ «Росди Касим» поскольку это не требует детальной конфигурации IP.

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

Делайте это просто глупо (KISS), просто включив службу браузера Sql Server, затем добавьте \ SQLEXPRESS за IP-адресом при подключении к серверу.

Прямое использование IP без & quot; \ SQLEXPRESS & quot; была моя точка отказа, так как он не использовал порт по умолчанию.

Благодарю.

На моей установке SQL Server 2012 Developer Edition, установленной с настройками по умолчанию, мне просто нужно было загрузить диспетчер конфигурации SQL Server - & gt; Конфигурация сети SQL Server - & gt; Протоколы для MSSQLSERVER и изменения TCP / IP с Отключено на Включено.

 17 янв. 2014 г., 10:08
Это работает для одного из моих серверов, но не для другого.
 10 янв. 2013 г., 16:19
Краткое замечание: для меня это не сработало. Неправильный IP-адрес был там по какой-то причине. Однако шаги Kyralessa сделали свое дело, поскольку они включали обновление IP.

Возникли проблемы с подключением к SQL Server?

Попробуйте отключить брандмауэр.

Если вы можете соединиться с отключенным брандмауэром, возможно, вы пропустили некоторые правила ввода, такие как «sql service broker», добавьте эти правила ввода в брандмауэр:

& quot; SQL ADMIN CONNECTION & quot; TCP-порт 1434

& quot; SQL ADMIN CONNECTION & quot; UDP-порт 1434

& quot; СЛУЖБА АНАЛИЗА SQL & quot; TCP-порт 2383

& quot; SQL BROWSE ANALYSIS SERVICE & quot; TCP-порт 2382

& quot; SQL DEBUGGER / RPC & quot; TCP-порт 135

& quot; СЕРВЕР SQL & quot; TCP PORT 1433 и другие, если у вас есть динамические порты

& quot; SQL SERVICE BROKER & quot; TCP-порт 4022

I had a different problem from what all of the answers so far mentioned!

Я должен начать с того, что у меня это было в Visual Studio, а не в SQL Server Express, но решение должно быть точно таким же.

Ну, боже, это на самом деле очень просто и, возможно, немного глупо. Когда я попытался создать базу данных, и Visual Studio предложила имя SQL Server, оно дало мне мое имя пользователя Windows, и, поскольку это фактически имя сервера, я выбрал его.

На самом деле это было мое имя пользователя Windows +\SQLEXPRESS, Если вы не меняли какие-либо настройки, это, вероятно, тоже ваша. Если это работает, прекратите читать; это мой ответ Если это не работает, возможно, имя другое.

Если, как и я, у вас была эта проблема только в Visual Studio, чтобы проверить, что у вас, выполните следующие действия:

Open SQL Server Management Studioicon. If you don't see your server (docked to the left by default) press F8 or go to View -> Object Explorer. Right click on the name of the server and choose Properties (The last item) At the bottom left you can see your server's actual name under "Server" (not Connection, but above it).

Это имя сервера, и это то, что вы должны попытаться подключиться! не то, что предлагает Visual Studio!

Решение Вопроса

Что ж,рад, что спросил, Решение, которое я наконец обнаружил, было здесь:

Как мне настроить SQL Server Express, чтобы разрешить удаленные соединения tcp / ip через порт 1433?

Run SQL Server Configuration Manager. Go to SQL Server Network Configuration > Protocols for SQLEXPRESS. Make sure TCP/IP is enabled.

Пока все хорошо и вполне ожидаемо. Но потом:

Right-click on TCP/IP and select Properties. Verify that, under IP2, the IP Address is set to the computer's IP address on the local subnet. Scroll down to IPAll. Make sure that TCP Dynamic Ports is blank. (Mine was set to some 5-digit port number.) Make sure that TCP Port is set to 1433. (Mine was blank.)

(Кроме того, если вы выполните следующие действия, этоnot необходимо включить браузер SQL Server, и вам нужно только разрешить порт 1433, а не 1434.)

Эти дополнительные пять шагов - это то, что я не могу вспомнить, когда-либо приходилось делать в предыдущей версии SQL Server, Express или иным образом. Похоже, что они были необходимы, потому что я использую именованный экземпляр (myservername \ SQLEXPRESS) на сервере вместо экземпляра по умолчанию. Посмотреть здесь:

Настройка сервера для прослушивания определенного порта TCP (диспетчер конфигурации SQL Server)

 30 мар. 2013 г., 01:54
В Windows 8 и SQL 2012 Express SP1, установленном для экземпляра SQLEXPRESS, мне пришлось установить динамические порты на любое значение, кроме пустого (если вы удалили его, установите значение 0, тогда он будет пересчитывать новый случайный порт для вас) И также открыть ОБА TCP Правила входящего порта 1433 и UDP 1434 в панели управления Advanced Firewall. Когда динамические порты были пустыми, SQL-сервер просто зависал при запуске.
 16 дек. 2012 г., 02:20
ТотIPAll установка была совет спасителя! Мой был как твой ...: D
 18 сент. 2012 г., 23:20
Если SQL Server Express - не единственный экземпляр, может потребоваться UNASSIGN порт 1433 в других экземплярах. У меня был экземпляр по умолчанию 2008 R2 (MSSQLSERVER), и единственный способ подключиться к ним обоим извне - назначить порт 1433 экземпляру 2012 (как указано выше) и изменить назначения портов для более старого экземпляра по умолчанию на TCP Dynamic Порты = & quot; 0 & quot; и порт TCP = & quot; & quot; (Пробел). Делая это наоборот, давал доступ только к экземпляру по умолчанию.
 02 июл. 2013 г., 14:51
Просто хотел сказать спасибо и upvote. Вы сэкономили мне много времени. Вы не против обновить ваш пост с правильным синтаксисом подключения? Мне нужно использоватьmyserver\sqlexpress,[portnumber] без скобок. Обратите внимание это, и не:
 20 дек. 2012 г., 16:35
В случае, если это поможет кому-то еще ... это помогло, но я все еще не мог подключиться, пока не запустил службу браузера SQL Server. (Примечание. Для этого мне пришлось зайти в приложение «Службы» Windows, поскольку тип запуска службы браузера SQL Server по какой-то причине был «Отключен». Изменил тип запуска на «Автоматический» », запустил службы, а затем смог подключиться.)

Мне пришлось добавить порт через Configuration Manager и добавить номер порта в моем подключении sql[host]\[db instance name],1433

Note the , (comma) between instancename and port

Мне пришлось добавить правило входящего порта брандмауэра, чтобы открыть UDP-порт 1434. Это тот, который прослушивает Sql Server Browser.

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

 31 мар. 2013 г., 19:33
На самом деле, в моем случае это БЫЛО все, что мне нужно было сделать, так что несправедливо уцененный и действительно полезный вклад.
 25 нояб. 2015 г., 23:44
Я должен был сделать все Kyralessa и Pete, а также этот, прежде чем я смог получить Windows 10, обслуживающий SQL.
 12 янв. 2013 г., 00:01
К сожалению, это еще не все, что вам нужно сделать. Есть довольно много других шагов, которые необходимо предпринять, как указано в принятом ответе выше.
 04 апр. 2014 г., 15:40
Я думаю, что было бы справедливо сказать, что "многое должно быть согласовано, какие дополнительные шаги необходимы для вас, они будут различаться"
 09 мая 2013 г., 04:24
Для меня было исправлено добавление правила открытия порта 1433.

Ваш ответ на вопрос