Я не могу подключиться к своей базе данных с сайта. Я получаю эту ошибку:
поставщик именованных каналов, ошибка: 40-не удалось открыть соединение с SQL Server
Я попытался использовать локальный IP-адрес для подключения, а также общедоступный. Я пробовал:
- Да, сайт может общаться с сервером
- включены именованные каналы / TCP.
- удаленные подключения разрешены.
- окна Брандмауэр выключен
- создано исключение для порта 1433 в Брандмауэре Windows.
- включено все в Диспетчере конфигурации SQL Server.
Что еще я могу сделать здесь?
27 ответов
решить эту проблему очень просто:
- перейти к панели управления.
- поиск сервисов.
- откройте окно локальные службы из результатов поиска
- перезапустите службу MSSQLSERVER.
и самое простое решение-проверьте, вернулась ли ваша косая черта.
Я потратил около часа, пытаясь выяснить, что случилось с SERVER / INSTANCENAME когда все настроено правильно, именованные каналы, права доступа пользователя. и вдруг меня осенило: это не порез, это обратная косая черта ( ).
Это трехэтапный процесс действительно после установки SQL Server:
- Включить Именованные Каналы SQL Config Manager —> SQL Server Network Consif —> протоколы —> именованные каналы —> щелкните правой кнопкой мыши —> перезапустить
перезагрузить сервер Диспетчер конфигурации SQL —> службы SQL Server —> SQL Server (SQLEXPRESS) —> щелкните правой кнопкой мыши —> перезапустить
Используйте правильные имена серверов и экземпляров (нужны оба!) Как правило, это будет .Именем sqlexpress, например, см. снимок экрана из диалогового окна подключения QueryExpress.
Я только что установил SQL SERVER 2012 developer. Когда я создавал свой первый пакет служб SSIS, я получил эту ошибку каналов, когда пытался создать задачу подключения к данным в SQL Server 2012 Data Tools в окне Диспетчера соединений. Я решил с помощью поста выше.
Если вы выбираете именованный экземпляр и вызываете именованный экземпляр SSQDatabase1, а имя вашего ПК-PCX1. Необходимо ввести PCX1SSQDatabase1 не только SSQDatabase1 или вы получите имя ошибка труб.
нить на MSDN Social,Re: поставщик именованных каналов, ошибка: 40-не удалось открыть соединение с SQL Server, имеет довольно приличный список возможных проблем, связанных с вашей ошибкой. Возможно, вы захотите увидеть, может ли любой из них быть тем, что вы испытываете.
- неправильная строка подключения, например, с помощью SqlExpress
- именованные каналы (NP) не были включены в экземпляре SQL
- удаленное соединение не было включено
- сервер не запущен или указывает на не реальный сервер в строке подключения
- другие причины, такие как неправильный контекст безопасности
- попробуйте основные тесты подключения между двумя машинами, над которыми вы работаете
Я только что включил TCP / IP,через,именованные каналы в диспетчере конфигурации Sql Server , моя проблема решена обратитесь к этому для получения дополнительной информации Разрешение Именованных Каналов Ошибка 40
использовать ИМЯ СЕРВЕРА ЭКЗЕМПЛЯРА .Использование двойной обратной косой черты в моем проекте решило мою проблему.
TCP / IP именованный канал . оба включены
Веб-Конфигурации. (для localhost)
была такая же проблема. Провел, как 6 часов, когда пришлось перенести некоторые серверы. Пробовал все предложения, доступные по этой теме и другие.
решение было так же просто, как перезагрузка сервера!
в моем случае у меня был автономный сервер, я изменил порт sql server по умолчанию 1433 в configuration manager на некоторое число и перезапустил службу sql serve,чтобы вступить в силу, я смог подключиться к sql server через management studio, Если я войду на сервер. но я не смог подключиться с моей локальной машины через sql server, я получал сообщение об ошибке:
при установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром. Этот сервер не найден или недоступен. Проверьте правильность имени экземпляра и
, что SQL Server настроен на разрешение удаленных подключений. (поставщик: поставщик именованных каналов, ошибка: 40-не удалось открыть соединение с SQL Server) (Microsoft SQL Server, Ошибка: 5)
Я проверил и проверил все ниже
-включены именованные каналы / TCP. — Удаленные соединения разрешены. -Брандмауэр Windows отключен — Создано исключение для брандмауэра portin Windows( это не было необходимо в моем случае, поскольку сервер находится в той же сети подсети). — Включено все в Диспетчере конфигурации SQL Server.
затем я вернул номер порта по умолчанию 1433 и перезапустил службу sql server, и проблема была решена, и я могу подключить sql server из моей локальной студии управления.
У меня была та же проблема. Я использую MSSQL Server Management Studio 2017 и решил эту проблему, используя следующие шаги:
- проверьте правильность работы служб SQL Server Services или нет.
- также проверьте работу в хорошем состоянии SQL Server (MSSQLSERVER).
- также проверьте работу браузера SQL Server.
- перезапустите SQL Server (MSSQLSERVER)
выполните следующие действия:
открыть окно службы (откройте "окно запуска" и введите службы.магистр.)
Поиск служб SQL (с префиксом SQL).
начать (если не удается запустить. Перейти к шагу 4).
Right_click для каждой службы — > свойства — > изменить на вкладку "войти" -> выбрать войти как "локальный". "- > 0K. Затем снова запустите службы SQL.
попробуйте открыть SQL и подключить базу данных.
очень простое решение
use (local)Имя_экземпляра вот и все.у меня получилось.
после выполнения всех шагов, указанных здесь, если он все еще не подключается, попробуйте добавить DNS с IP-адресом в файле hosts в папке etc. Добавление IP-адреса вместо DNS-имени в строку подключения должно быть временным решением, чтобы проверить, действительно ли соединение работает.
Я попытался использовать локальный IP-адрес для подключения, а также общедоступный. Я пробовал:
Да, сайт может взаимодействовать с сервером с именем pipes / TCP включен. Разрешены удаленные подключения. Брандмауэр Windows отключен Создал исключение для порта 1433 в Брандмауэре Windows. Включен все в Диспетчере конфигурации SQL Server.
я обеспечил и сделал выше, а также, и я просто хочу поделиться, что двойная обратная косая черта
использование одной обратной косой черты привело к ошибке сборки, т. е.: Ошибка 1 нераспознанная escape-последовательность
Я надеюсь, что это поможет следующему парню-Я пожертвовал ужином, полуночной закуской и временем NBA, решая это (позор)
спасибо [Tamizh venthan] ^_^
включить TCP / Ip , конвейерный протокол, перейдя в Управление компьютером ->SQL и Службы, убедитесь, что служба включена. Enbale порт на брандмауэре. Попробуйте войти в систему через командную строку — > как администратор; последнее имя пользователя должен быть (локальный)SQLEXPRESS. Надеюсь, это поможет.
открыть Диспетчер конфигурации SQL Server
- выберите службы SQL Server справа.
- найдите свой сервер справа и перейдите к его свойствам (щелкните правой кнопкой мыши)
- изменить метод входа в локальную систему.
У меня была та же проблема и я решил проблему, отключив мой брандмауэр(ESET).
первым шагом для решения этой проблемы должна быть попытка пинговать свой собственный компьютер с другого компьютера. Если у вас включен брандмауэр, вы не сможете выполнить ping самостоятельно. Я попытался пинговать свой собственный компьютер, затем пинг не удался (не получил ответа от сервера)
Я предложил ниже шаги для решения вашей проблемы Как исправить ошибку "поставщик именованных каналов, ошибка 40-не удалось открыть соединение с" SQL Server‘
- проверьте, работает нормально службы SQL Server services или нет.
- также проверьте на работу в хорошем состоянии SQL-сервер (служба mssqlserver).
- также проверьте, работает нормально браузер SQL Server.
- удалить все ранее псевдонимы, теперь создавать новые псевдонимы согласно вашим требованиям.
- теперь проверьте работу SQL Server по умолчанию порт 1433
- далее нажмите на клиентские протоколы в экземпляре, затем нажмите на TCP / IP, теперь щелкните правой кнопкой мыши, откройте свойство, здесь вы можете убедиться, что ваш рабочий штраф ваш порт по умолчанию SQL 1433.
- открыть среда SQL Server Management Studio щелкните правой кнопкой мыши, нажмите на "свойства опции" и нажмите на кнопку подключения tab, затем, наконец, отметьте разрешить удаленные подключения к этому серверу.
- проверьте правильность работы или ваш Ping IP Host.
Я пытался добавить новое соединение в VS2015. Ни одно из предложений здесь не сработало. Подозревая какую-то ошибку в Мастере, тем более, что SSMS смог подключиться просто отлично, я решил попробовать обмануть его. Он работал!
вместо добавления соединения используйте "создать новую базу данных SQL Server". Введите имя сервера и случайное имя для новой БД, например "тест".
предполагая, что это удастся, откройте Server Explorer в VS, найдите соединение в Data Connections, щелкните его правой кнопкой мыши и выберите Изменить соединение.
изменить "тест" (от шага 1) на имя существующей базы данных к которой вы хотите подключиться. Нажмите Кнопку "Проверить Соединение". На этот раз это должно сработать!
удалите временную базу данных, созданную на шаге 1.
У меня есть еще одно решение, я думаю. Недавно я изменил имя своего компьютера так, после того, как я не мог подключиться еще после попытки всех вышеперечисленных методов. Я изменил имя сервера.. Имя сервера = > (найдите больше) = > в Database engine был найден новый сервер, такой же, как новое имя компьютера. Это сработало, и жизнь снова хороша.
Я боролся целую вечность, прежде чем понял свою ошибку — я использовал запятые вместо точек с запятой в строке подключения
У меня была эта проблема, но ни одно из предложений выше не исправило ее.
Я видел эту проблему, когда я развернул свой веб-сайт в IIS. Исправление состояло в том, чтобы перейти в Дополнительные параметры для пула приложений по умолчанию и изменить свойство identity с default на Administrator.
в моем случае, Я открыл SQL Server Management Studio и искал SQLEXPRESS в моем ядре базы данных. У него было два экземпляра, и я выбрал правильный.
для меня это была проблема брандмауэра.
сначала вам нужно добавить порт (например, 1444 и, возможно, 1434), но также
второй раз, когда я получил эту проблему, когда я вернулся к брандмауэру, пути были неправильными, и мне нужно было обновить форму 12 до 13! Простое нажатие на обзор на вкладке "программы и Службы" помогло это понять.
наконец, попробуйте выполнить команду
EXEC xp_readerrorlog 0,1, "не удалось зарегистрировать имя участника-службы", Null
для меня он вернул причину ошибки
вы найдете, скорее всего, ваше имя БД неверно, вы увидите имя сервера в VS, как "DESKTOP-0I14BKI", но если вы откроете SSMS, вы увидите РАБОЧИЙ СТОЛ-0I14BKISQLBLAHBLAH , просто добавьте "SQLBLAHBLAH "(имя экземпляра) к вашему" имени сервера " в свойствах VS connection.
вы увидите:
Исправления:
Я пробовал почти все на этой странице, но у меня были некоторые основные проблемы, которые на самом деле нужно было решить. Я не смог сделать некоторые вещи, такие как open SQL Server Configuration Manager, которые в конечном итоге были повреждены/отсутствуют файлы поставщика WMI.
есть много утомительных способов решить эти проблемы в соответствии с тем, что я прочитал, но инструмент от tweaking.com удалось удалить и заменить/восстановить поставщика WMI (инструментарий управления Windows) файлы.
Я использовал для ремонта компьютера и в целом tweaking.com инструмент действительно впечатлил меня, и это было предложено с одной из страниц форума ошибок WMI, на которые я пошел.
после того, как я исправил эту проблему, я смог подключиться к моей SQL db, как локально, так и удаленно.
Добрый день,появляется ошибка при подключении "named pipes provider could not open a connection to sql server 53".Я понимаю,что она указывает на то,что не может подключиться к sql серверу(win server 2008 r2).Она возникает при включенном брендмауэре,соответственно,выключив его,все работает.Но без него не хочется.В настройках брендмауэра настраивал правила по портам:tcp-1433 и udp-1434.
Встретил вот это http://www.community.terrasoft.ru/blogs/8870 ,но это ко мне не относится(без брендмауэра все работает).Видно какую-нибудь мелочь упустил.. Заранее спасибо!
У меня такой же вопрос
Здравствуйте. Обратите внимание на то, где Вы настраиваете брендмауэр (сервер или клиент). В зависимости от этого правило должно быть входящим или исходящим. Второе — это нужно проверить порт, который "слушает" SQL-сервер. Бывает, что он по умолчанию использует не 1433. Проверить это можно на сервере в утилите "SQL Server Configuration Manager". Слева в дереве выбираете сетевые протоколы для Вашего экземпляра, справа выбираете TCP/IP и смотрите там используемый порт.
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии
- Цитировать
Перебрал правила и на клиенте,и на сервере,проверил порты,все правильно. но не работает
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии
- Цитировать
В этой ситуации предоставить решение заочно достаточно проблематично. Обратитесь, пожалуйста, в поддержку для обсуждения возможности организации удалённого доступа.
Я не могу подключиться к моей базе данных с сайта. Я получаю эту ошибку:
Поставщик именованных труб, ошибка: 40 — Не удалось открыть соединение с SQL Server
Я попытался использовать локальный IP-адрес для подключения, а также для публичного. Я пробовал:
- Да, сайт может связываться с сервером
- Именованные каналы /TCP включены.
- Разрешены удаленные подключения.
- Брандмауэр Windows отключен.
- Создал исключение для порта 1433 в брандмауэре Windows.
- Включено все в диспетчере конфигурации SQL Server.
Что еще я могу сделать здесь?
Решение этой проблемы очень просто:
- Перейдите на панель управления.
- поиск служб.
- Откройте окно локальных служб из результатов поиска
- Перезапустите службу MSSQLSERVER.
Снимок экрана с шагами:
И самое простое решение — проверьте, вернулась ли ваша черта.
Я потратил около часа, пытаясь выяснить, что случилось с SERVER/INSTANCENAME, когда все настроено правильно, именованные каналы, права доступа пользователя. и вдруг это меня поразило, это не косая черта, это обратная косая черта ( ).
Это трехэтапный процесс после установки SQL Server:
- Включить именованные каналы. SQL Config Manager → Сетевой Консорциум SQL Server → Протоколы → Именованные каналы → Щелкните правой кнопкой мыши → Перезапустить
Перезагрузите сервер SQL Config Manager → Службы SQL Server → SQL Server (SQLEXPRESS) → Щелкните правой кнопкой мыши → Перезагрузить
Используйте правильные имена серверов и экземпляров (оба необходимы!) Обычно это будет .SQLEXPRESS, например, см. Скриншот из диалогового окна QueryExpress.
Я только что установил разработчика SQL SERVER 2012. Когда я создавал свой первый пакет SSIS, я получил эту ошибку в трубке, когда пытался создать задачу подключения к данным в инструментах данных SQL Server 2012 в окне диспетчера подключений. Я решил с помощью поста выше.
Если вы выберите именованный экземпляр, и вы вызываете свой именованный экземпляр SSQDatabase1, а ваше имя ПК — PCX1. Вы должны ввести PCX1SSQDatabase1, а не только SSQDatabase1 или вы получите сообщение об именованных каналах.
Тема в MSDN Social, Re: поставщик именованных каналов, ошибка: 40 — Не удалось открыть соединение с SQL Server, имеется довольно приличный список возможных проблем, связанных с вашей ошибкой. Возможно, вы захотите узнать, может ли кто-то из них быть тем, что вы испытываете.
- Неверная строка подключения, например, использование SqlExpress
- Именованные каналы (NP) не были включены в экземпляре SQL
- Удаленное соединение не было включено
- Сервер не запущен или указывает на ненастоящий сервер в строке подключения
- Другие причины, такие как неправильный контекст безопасности
- Попробуйте базовые тесты соединения между двумя компьютерами, на которых вы работаете
i Только что включенный TCP/IP, VIA, именованные каналы в диспетчере конфигурации сервера Sql, моя проблема решена, обратитесь к этому за дополнительной информацией Устранение именованных труб Ошибка 40
Используйте СЕРВЕР\ИМЯ ИНСТРУМЕНТА. Использование двойной обратной косой черты в моем проекте решило мою проблему.
TCP/IP Именованные трубы . оба включены
Web Config. (для локального хоста)
Имела ту же проблему. Прошло 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 и решил эту проблему, выполнив следующие действия:
- Проверить работоспособность служб SQL Server Services или нет.
- Также проверьте работоспособность SQL Server (MSSQLSERVER).
- Также проверьте, нормально ли работает браузер SQL Server.
- Перезапустите SQL Server (MSSQLSERVER)
Попробуйте выполнить следующие действия:
Откройте окно "Открытые службы" (откройте "run box" и введите services.msc).
Поиск служб SQL (с префиксом SQL).
Запустите их (если не удается запустить. Перейти к шагу 4).
Right_click для каждой службы → Свойства → Изменить на вкладку "Войти" → выбрать журнал как "Локальный. " → 0K. Затем запустите службы SQL снова.
Попробуйте открыть SQL и подключиться к базе данных.
Скорее всего, вы обнаружите, что имя вашей БД неверно, вы увидите имя сервера в VS как "DESKTOP-0I14BKI", но если вы откроете SSMS, вы увидите DESKTOP-0I14BKISQLBLAHBLAH, просто добавьте " SQLBLAHBLAH" (имя экземпляра) ) к вашему "имени сервера" в свойствах подключения VS.
Вы увидите:
Исправить:
Если вы работаете с ядром Asp.net и используете appsettings.json, тогда пишите сервер в качестве локального хоста и после записи имени экземпляра sql для включенного именованного канала, как это
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 показанного ниже:
Решение № 3: Принудительно ваш именованный экземпляр использовать порт № 1433, который используется экземпляром по умолчанию. Помните, что это будет работать, только если у вас нет экземпляра SQL Server по умолчанию на вашем компьютере, так как экземпляр SQL Server по умолчанию уже использует порт # 1433. Один и тот же номер порта не может использоваться двумя разными службами Windows.
Пометьте поле TCP Dynamic ports пустым, а поле TCP Port — 1433.
Измените номер порта в строке подключения, как показано ниже:
ИЛИ ЖЕ
Примечание. Каждое изменение настроек TCP/IP требует соответствующего перезапуска службы Windows.
Интересно, что после устранения ошибки, когда я вернулся к настройке динамического порта, чтобы воспроизвести ту же ошибку, тогда это не произошло. Не уверен почему.
Пожалуйста, прочитайте ниже интересные темы, чтобы узнать больше о динамических портах SQL Server:
Я получил приводит к решению моей проблемы из этого блога.