Ответ 1
Решение этой проблемы очень просто:
- Перейдите на панель управления.
- поиск служб.
- Откройте окно локальных служб из результатов поиска
- Перезапустите службу MSSQLSERVER.
Снимок экрана с шагами:
Я не могу подключиться к моей базе данных с сайта. Я получаю эту ошибку:
Поставщик именованных труб, ошибка: 40 - Не удалось открыть соединение с SQL Server
Я попытался использовать локальный IP-адрес для подключения, а также для публичного. Я пробовал:
Что еще я могу сделать здесь?
Решение этой проблемы очень просто:
Снимок экрана с шагами:
И самое простое решение - проверьте, вернулась ли ваша черта...
Я потратил около часа, пытаясь выяснить, что случилось с SERVER/INSTANCENAME, когда все настроено правильно, именованные каналы, права доступа пользователя... и вдруг это меня поразило, это не косая черта, это обратная косая черта (\
).
Ужас, позор...
Это трехэтапный процесс после установки SQL Server:
Перезагрузите сервер SQL Config Manager → Службы SQL Server → SQL Server (SQLEXPRESS) → Щелкните правой кнопкой мыши → Перезагрузить
Используйте правильные имена серверов и экземпляров (оба необходимы!) Обычно это будет .\SQLEXPRESS, например, см. Скриншот из диалогового окна QueryExpress.
Там у вас есть.
Я только что установил разработчика SQL SERVER 2012. Когда я создавал свой первый пакет SSIS, я получил эту ошибку в трубке, когда пытался создать задачу подключения к данным в инструментах данных SQL Server 2012 в окне диспетчера подключений. Я решил с помощью поста выше.
Если вы выберите именованный экземпляр, и вы вызываете свой именованный экземпляр SSQDatabase1, а ваше имя ПК - PCX1. Вы должны ввести PCX1\SSQDatabase1, а не только SSQDatabase1 или вы получите сообщение об именованных каналах.
Тема в MSDN Social, Re: поставщик именованных каналов, ошибка: 40 - Не удалось открыть соединение с SQL Server, имеется довольно приличный список возможных проблем, связанных с вашей ошибкой. Возможно, вы захотите узнать, может ли кто-то из них быть тем, что вы испытываете.
i Только что включенный TCP/IP, VIA, именованные каналы в диспетчере конфигурации сервера Sql, моя проблема решена, обратитесь к этому за дополнительной информацией Устранение именованных труб Ошибка 40
Используйте СЕРВЕР\\ИМЯ ИНСТРУМЕНТА. Использование двойной обратной косой черты в моем проекте решило мою проблему.
Спасибо Дамиану...
TCP/IP Именованные трубы ... оба включены
Web Config.... (для локального хоста)
<add name="FooData" connectionString="Data Source=localhost\InstanceName;Initial Catalog=DatabaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
Имела ту же проблему. Прошло 6 часов, когда пришлось перенести некоторые серверы. Пробовал все предложения по этой теме и другим.
Решение было таким же простым, как перезагрузка сервера!
в моем случае у меня был автономный сервер, я изменил порт по умолчанию порт сервера SQL Server 1433 в конфигурационном менеджере на некоторое количество и перезапустил службу службы sql, чтобы вступить в силу, я смог подключиться к серверу sql через студию управления если я вхожу на сервер. но я не смог подключиться к локальной машине через сервер sql, я получал ошибку:
При установлении соединения с SQL Server возникла связанная с сетью или конкретная ошибка экземпляра. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и
что SQL Server настроен для удаленного подключения. (поставщик: поставщик именованных труб, ошибка: 40 - не удалось открыть соединение с SQL Server) (Microsoft SQL Server, ошибка: 5)
Я проверил и проверил все ниже
-Имя подключений /TCP включен. Разрешены соединения. -Windows Firewall отключен -Создал исключение для portin брандмауэра Windows (это не было необходимо в моем случае, поскольку сервер находится в той же сети подсети). -Используйте все в диспетчере конфигурации SQL Server.
затем я восстановил номер порта до значения по умолчанию 1433 и перезапустил службу sql-сервера, и проблема была решена, и я могу подключить SQL-сервер из моей локальной студии управления.
У меня такая же проблема. Я использую MSSQL Server Management Studio 2017 и решил эту проблему, выполнив следующие действия:
и исправил это.
Попробуйте выполнить следующие действия:
Откройте окно "Открытые службы" (откройте "run box" и введите services.msc).
Поиск служб SQL (с префиксом SQL).
Запустите их (если не удается запустить. Перейти к шагу 4).
Right_click для каждой службы → Свойства → Изменить на вкладку "Войти" → выбрать журнал как "Локальный..." → 0K. Затем запустите службы SQL снова.
Попробуйте открыть SQL и подключиться к базе данных.
Скорее всего, вы обнаружите, что имя вашей БД неверно, вы увидите имя сервера в VS как "DESKTOP-0I14BKI", но если вы откроете SSMS, вы увидите DESKTOP-0I14BKI\SQLBLAHBLAH, просто добавьте "\ SQLBLAHBLAH" (имя экземпляра) ) к вашему "имени сервера" в свойствах подключения VS.
Если вы работаете с ядром Asp.net и используете appsettings.json, тогда пишите сервер в качестве локального хоста и после записи имени экземпляра sql для включенного именованного канала, как это
"ConnectionString": {
"dewDB": "server=localhost\\dewelopersql;database=dewdb;User ID=sa;password=XXXXX",
},
TL; DR; Ваш экземпляр SQL Server использует динамические порты, которые не работают. Заставить SQL Server использовать статический порт # 1433.
Полная информация: во-первых, эта проблема более вероятна, если у вас есть смесь по умолчанию и именованного экземпляра или только именованных экземпляров (что было моим случаем).
Основная концепция. Каждый экземпляр Microsoft SQL Server, установленный на компьютере, использует отдельный порт для прослушивания входящих запросов на подключение. Экземпляр SQL Server по умолчанию использует порт № 1433. Когда вы устанавливаете именованные экземпляры, они начинают использовать динамические порты, которые определяются во время запуска службы Windows, соответствующей именованному экземпляру SQL Server.
Мой код не смог (с кодом ошибки 40) подключиться к единственному именованному экземпляру SQL Server, который был у меня на виртуальной машине. Вы можете попробовать следующие возможные решения:
Решение № 1: Клиентский код, пытающийся подключиться к экземпляру SQL Server, получает справку из службы браузера SQL Server, чтобы выяснить номер порта, на котором ваш именованный экземпляр прослушивает входящие подключения. Убедитесь, что на вашем компьютере запущена служба браузера SQL.
Решение № 2. Проверьте номер порта (желтым цветом), который использует ваш именованный экземпляр SQL Server, из диспетчера конфигурации SQL Server, как показано на снимке ниже:
Используйте этот номер порта явно в строке подключения или с помощью sqlcmd
показанного ниже:
sqlcmd -s mymachinename,11380 -i deleteDB.sql -o SQLDelete.txt
Решение № 3: Принудительно ваш именованный экземпляр использовать порт № 1433, который используется экземпляром по умолчанию. Помните, что это будет работать, только если у вас нет экземпляра SQL Server по умолчанию на вашем компьютере, так как экземпляр SQL Server по умолчанию уже использует порт # 1433. Один и тот же номер порта не может использоваться двумя разными службами Windows.
Пометьте поле TCP Dynamic ports
пустым, а поле TCP Port
- 1433.
Измените номер порта в строке подключения, как показано ниже:
sqlcmd -s mymachinename\instanceName -i deleteDB.sql -o SQLDelete.txt
ИЛИ ЖЕ
sqlcmd -s mymachinename,1433 -i deleteDB.sql -o SQLDelete.txt
Примечание. Каждое изменение настроек TCP/IP требует соответствующего перезапуска службы Windows.
Интересно, что после устранения ошибки, когда я вернулся к настройке динамического порта, чтобы воспроизвести ту же ошибку, тогда это не произошло. Не уверен почему.
Пожалуйста, прочитайте ниже интересные темы, чтобы узнать больше о динамических портах SQL Server:
Как настроить порт SQL Server на нескольких экземплярах?
Когда динамический порт является "динамическим"?
Когда использовать динамический порт TCP, а когда порт TCP?
Я получил приводит к решению моей проблемы из этого блога.
Очень простое решение
используйте (local)\InstanceName
что это. это сработало для меня.
После выполнения всех шагов, упомянутых здесь, если он все еще не подключен, попробуйте добавить DNS с IP-адресом в файл hosts в папке etc. Добавление IP-адреса вместо имени DNS в строке подключения должно быть временным решением, чтобы проверить, действительно ли соединение работает.
Я попытался использовать локальный IP-адрес для подключения, а также для публичного. Я пробовал:
Да, сайт может связываться с сервером. Именованные каналы /TCP - это включен. Удаленные подключения разрешены. Брандмауэр Windows отключен Создал исключение для порта 1433 в брандмауэре Windows. Включено все в диспетчере конфигурации SQL Server.
Я обеспечил и сделал все выше, и я просто хочу поделиться тем, что ДВОЙНАЯ РЕЗЕРВАЦИЯ
oBuilder.DataSource = "SPECIFICPCNAME\SQLEXPRESS";
Использование SINGLE BACKSLASH приводит к ошибке построения, т.е.: Ошибка 1 Неизвестная escape-последовательность
Я надеюсь, что это поможет следующему парню - я пожертвовал ужином, полуночной закуской и НБА осветил время, решая это (позор)
Благодаря [Tamizh venthan] ^ _ ^
Включите TCP/Ip, Piped Protocol, перейдя в "Управление компьютером" → "SQL" и "Службы", убедитесь, что служба включена. Включите порт на брандмауэре. Попробуйте войти в систему через командную строку → в качестве администратора; последнее имя пользователя должен быть (локальным)\SQLEXPRESS. Надеюсь, это поможет.
Откройте диспетчер конфигурации SQL Server
У меня была такая же проблема и я решил проблему, отключив мой брандмауэр (ESET).
Первым шагом для решения этой проблемы должно стать попытку проверки вашего собственного компьютера с другого компьютера. Если у вас включен брандмауэр, возможно, вы не сможете выполнить ping. Я пробовал пинговать свой собственный компьютер, затем ping был провален (не получил ответа от сервера)
Я пытался добавить новое соединение в VS2015. Ни одно из предложений здесь не работало. Подозревая какую-то ошибку в волшебнике, тем более, что SSMS смог подключиться просто отлично, я решил попробовать и обмануть его. Это сработало!
Вместо добавления соединения используйте "Создать новую базу данных SQL Server". Введите имя своего сервера и случайное имя для новой БД, например. "Тест".
Предполагая, что это удается, откройте Server Explorer в VS, найдите соединение в Data Connections, щелкните его правой кнопкой мыши и выберите "Изменить подключение".
Измените "тест" (с шага 1) на имя существующей базы данных, к которой вы хотите подключиться. Нажмите "Проверить соединение". На этот раз он должен работать!
Удалите временную базу данных, созданную на шаге 1.
У меня есть еще одно решение, я думаю. Недавно я изменил имя своего компьютера, так что после того, как я попытался выполнить все вышеперечисленные методы, я не смог подключиться. Я изменил имя сервера.. Имя сервера = > (просмотреть больше) = > под движком базы данных, новый сервер был найден таким же, как новое имя компьютера. Это сработало, и жизнь снова хороша.
Я много лет боролся с этим, прежде чем осознал свою ошибку - я использовал запятые вместо точек с запятой в строке подключения
У меня была эта проблема, но ни одно из предложений не было исправлено.
Я видел эту проблему, когда я развернул свой сайт в IIS. Исправление заключалось в том, чтобы перейти к дополнительным настройкам против пула приложений по умолчанию и изменить свойство идентификации по умолчанию на "Администратор".
В моем случае, Я открыл SQL Server Management Studio и искал SQLEXPRESS в своем ядре базы данных. У него было два экземпляра, и я выбрал правильный.
Для меня это проблема с брандмауэром.
Сначала вам нужно добавить порт (например, 1444 и, возможно, 1434), но также
C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe
и
%ProgramFiles%\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Binn\SQLAGENT.EXE
Во второй раз, когда я получил эту проблему, когда я вернулся к брандмауэру, пути были неправильными, и мне нужно было обновить форму с 12 по 13! Просто щелкнув по экрану на вкладке "Программы и службы", вы поняли это.
Наконец, попробуйте запустить команду
EXEC xp_readerrorlog 0,1, "не удалось зарегистрировать имя участника службы", Null
Для меня он вернул причину ошибки
Ниже предложены шаги для решения вашей проблемы. Как исправить ошибку "Поставщик именованных каналов, ошибка 40 - Не удалось открыть соединение с" SQL Server "
Я попробовал почти все на этой странице, но у меня были некоторые проблемы, которые на самом деле нужно было решить. Я не смог сделать некоторые вещи, такие как открыть Диспетчер конфигурации SQL Server, который в конечном итоге был поврежден/пропал файлы поставщика WMI.
Есть много утомительных способов решить эту проблему в соответствии с тем, что я прочитал, но инструмент tweaking.com смог удалить и заменить/исправить мои файлы поставщика WMI (инструментария управления Windows).
Раньше я занимался ремонтом компьютеров, и в целом инструмент tweaking.com действительно произвел на меня впечатление, и это было предложено на одной из страниц форума ошибок WMI, на которую я зашел.
После устранения этой проблемы я смог подключиться к своей базе данных SQL как локально, так и удаленно.
Надеюсь, это кому-нибудь поможет.
Откройте порт № 1433 на вашем сервере для удаленного подключения SQL.