1с sql не удалось открыть соединение с sql server

Обновлено: 06.07.2024

Я не могу подключиться к моей базе данных с сайта. Я получаю эту ошибку:

Поставщик именованных каналов, ошибка: 40 - Не удалось открыть соединение с SQL Server

Я попытался использовать локальный IP-адрес для подключения, а также общедоступный. Я пробовал:

  1. Да, сайт может общаться с сервером
  2. Именованные каналы / TCP включен.
  3. Удаленные подключения разрешены. выключен
  4. Создано исключение для порта 1433 в брандмауэре Windows.
  5. Включено все в диспетчере конфигурации SQL Server.

Что еще я могу сделать здесь?

Возможно, стоит проверить, действительно ли SQL Server использует порт 1433. Возможно, он использует что-то отличное от порта по умолчанию. Также убедитесь, что во время пинга, что имя сервера установлено правильно (или хорошо написано). Это была проблема в моем случае! @RajeevShenoy: Как вы можете сказать без связи (в чем проблема)? Я могу сказать порт, когда он подключен, с помощью netstat, но это работает только при наличии соединения.

Решить эту проблему очень легко:

  1. Перейти к панели управления.
  2. поиск услуг.
  3. Откройте окно Локальные услуги из результатов поиска
  4. Перезапустите службу MSSQLSERVER.

Скриншот шагов

Ничего себе, студия управления не запустила бы мой сервис, даже если он был установлен автоматически. Спасибо Спасибо, это помогло. Буду ли я каждый раз запускать сервис отсюда? Я раньше не должен был. Что делать, если эти услуги не здесь? Я установил SQL Server 17. Я не вижу этот сервис . Создание резервной копии базы данных 170 ГБ, служба остановлена. Благодаря этому потребовалось всего 5 минут, чтобы перезапустить сервер sql, который использовался важным клиентом. Большое спасибо. Все действия проверены, но перезагрузка у меня не сработала. Все еще получаю ту же ошибку.

И самое простое решение - проверить, вернулся ли ваш слеш .

Я потратил около часа, пытаясь выяснить, что не так с SERVER / INSTANCENAME, когда все настроено правильно, именованные каналы, права доступа пользователя . и вдруг меня поразило, это не косая черта, это обратная косая черта ( \ ).

У меня была проблема с ОП, и оказалось, что мне не хватает информации SERVER / INSTANCENAME (вместо этого там была точка). @LuxDie Где вы размещаете SERVER \ INSTANCENAME и где он находится? Этот ключ является ключевым, не следует забывать, что вам необходимо подключиться к «базе данных», которая размещается на сервере insance. Эта ошибка возникает, если вы используете только имя хоста сервера для соединения и пытаетесь использовать имя экземпляра в качестве базы данных или наоборот.

Это действительно трехэтапный процесс после установки SQL Server:

  1. Включить именованные каналы Диспетчер конфигурации SQL -> Сетевой консоль SQL Server -> Протоколы -> Именованные каналы -> Щелкните правой кнопкой мыши -> Перезагрузить

именованные каналы включены

Перезапустите сервер Диспетчер конфигурации SQL -> Службы SQL Server -> SQL Server (SQLEXPRESS) -> Щелкните правой кнопкой мыши -> Перезагрузить

Используйте правильные имена серверов и экземпляров (оба необходимы!) Обычно это будет . \ SQLEXPRESS , например, смотрите скриншот из диалога подключения QueryExpress.

введите описание изображения здесь

Там у вас есть это.

так как у вас есть относительно поздний ответ с высокой оценкой. Что это, когда у вас есть служба, которая нормально взаимодействует с вашим сервером sql, а затем через 3 часа после запуска она начинает получать эту ошибку, которая сохраняется в течение 10 минут или около того. Затем служба продолжает работать, как до ошибки. . Это для локальных подключений? Что дополнительно необходимо для работы удаленных соединений через сеть?

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

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

  • Неверная строка подключения, например, использование SqlExpress
  • Именованные каналы (NP) не были включены в экземпляре SQL
  • Удаленное соединение не было включено
  • Сервер не запущен или указывает на ненастоящий сервер в строке подключения
  • Другие причины, такие как неправильный контекст безопасности
  • попробуйте базовые тесты соединения между двумя компьютерами, на которых вы работаете
Ладно, разберись. Оказывается, когда я установил сервер, я сделал именованный экземпляр. Вы не можете подключиться к именованному экземпляру так же, как и к экземпляру по умолчанию. Итак, источник данных: localhost \ имя экземпляра, который работает. Все еще не мог получить это с IP-адресом, но рад наконец соединиться. Рад слышать, но из любопытства вы можете подключиться к нему, используя ip.ip.ip.ip/NamedInstance ?

Я только что включил TCP / IP, VIA, Именованные каналы в Sql Server Configuration Manager, Моя проблема была решена, обратитесь к ней для получения дополнительной информации Устранение ошибки именованных каналов 40

мертвая ссылка. Любая информация о том, что он сказал?

Используйте SERVER \\ INSTANCE NAME. Использование двойной обратной косой черты в моем проекте решило мою проблему.

Этот также работал для меня, но может кто-нибудь сказать мне, почему это работает? Я бы сказал, что строка убегает, но зависит от контекста

Именованные каналы TCP / IP . оба включены

Web Config . (для локального хоста)

Была такая же проблема. Потратил около 6 часов, когда пришлось перенести несколько серверов. Перепробовал все предложения, доступные по этой теме и другие.

Решение было так же просто, как перезагрузить сервер!

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

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

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

Я проверил и подтвердил все ниже

-Именованные каналы / TCP включен. -Дистанционные соединения разрешены. -Брандмауэр Windows выключен -Создано исключение для портирования брандмауэра Windows (в моем случае это не было необходимо, так как сервер находится в той же сети подсети). -Включено все в диспетчере конфигурации SQL Server.

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

У меня такая же проблема. Я использую MSSQL Server Management Studio 2017 и решил эту проблему, выполнив следующие действия:

  1. Проверить работоспособность служб SQL Server Services или нет.
  2. Также проверьте работоспособность SQL Server (MSSQLSERVER).
  3. Также проверьте работоспособность браузера SQL Server.
  4. Перезапустите SQL Server (MSSQLSERVER)
Спасибо за это! Браузер SQL Server был отключен, так что это исправило это для меня!

Попробуйте следующие шаги:

Откройте окно «Службы» (откройте «окно запуска» и введите services.msc).

Ищем службы SQL (с префиксом SQL).

Запустите их (если не можете начать. Перейти к шагу 4).

Попробуйте открыть SQL и подключить базу данных.

Скорее всего, вы обнаружите, что имя вашей БД неверно, вы увидите имя сервера в VS как «DESKTOP-0I14BKI», но если вы откроете SSMS, вы увидите DESKTOP-0I14BKI \ SQLBLAHBLAH , просто добавьте « \ SQLBLAHBLAH » (имя экземпляра) ) к вашему "имени сервера" в свойствах подключения VS.

введите описание изображения здесь

Вы увидите :

Полная информация : во-первых, эта проблема более вероятна, если у вас есть смесь по умолчанию и именованного экземпляра или только именованных экземпляров (что было в моем случае).

Основная концепция . Каждый экземпляр Microsoft SQL Server, установленный на компьютере, использует отдельный порт для прослушивания входящих запросов на подключение. Экземпляр SQL Server по умолчанию использует порт № 1433. Когда вы устанавливаете именованные экземпляры, они начинают использовать динамические порты, которые определяются во время запуска службы Windows, соответствующей именованному экземпляру SQL Server.

Мой код не смог (с кодом ошибки 40) соединиться с единственным именованным экземпляром SQL Server, который был у меня на виртуальной машине. Вы можете попробовать ниже возможные решения:

Решение № 1 : Клиентский код, пытающийся подключиться к экземпляру SQL Server, получает справку из службы браузера SQL Server, чтобы определить номер порта, на котором ваш именованный экземпляр прослушивает входящие подключения. Убедитесь, что на вашем компьютере запущена служба браузера SQL.

Решение №2 . Проверьте номер порта (желтым цветом), который использует ваш именованный экземпляр SQL Server, из диспетчера конфигурации SQL Server, как показано на снимке ниже:

введите описание изображения здесь

Используйте этот номер порта явно в строке подключения или как sqlcmd показано ниже:

Пометьте TCP Dynamic ports поле как пустое и TCP Port поле до 1433.

введите описание изображения здесь

Измените номер порта в строке подключения, как показано ниже:

ИЛИ

Примечание . Каждое изменение настроек TCP / IP требует соответствующего перезапуска службы Windows.

Интересно, что после устранения ошибки, когда я вернулся к настройке динамического порта, чтобы воспроизвести ту же ошибку, тогда это не произошло. Не уверен почему.

Пожалуйста, прочитайте ниже интересные темы, чтобы узнать больше о динамических портах SQL Server:

Я не могу подключиться к своей базе данных с сайта. Я получаю эту ошибку:

поставщик именованных каналов, ошибка: 40-не удалось открыть соединение с SQL Server

Я попытался использовать локальный IP-адрес для подключения, а также общедоступный. Я пробовал:

  1. Да, сайт может общаться с сервером
  2. включены именованные каналы / TCP.
  3. удаленные подключения разрешены.
  4. окна Брандмауэр выключен
  5. создано исключение для порта 1433 в Брандмауэре Windows.
  6. включено все в Диспетчере конфигурации SQL Server.

Что еще я могу сделать здесь?

решить эту проблему очень просто:

  1. перейти к панели управления.
  2. поиск сервисов.
  3. откройте окно локальные службы из результатов поиска
  4. перезапустите службу MSSQLSERVER.

Screenshot of the steps

и самое простое решение-проверьте, вернулась ли ваша косая черта.

Я потратил около часа, пытаясь выяснить, что случилось с SERVER / INSTANCENAME когда все настроено правильно, именованные каналы, права доступа пользователя. и вдруг меня осенило: это не порез, это обратная косая черта ( \ ).

Это трехэтапный процесс действительно после установки SQL Server:

  1. Включить Именованные Каналы SQL Config Manager --> SQL Server Network Consif --> протоколы --> именованные каналы --> щелкните правой кнопкой мыши --> перезапустить

named pipes enabled

перезагрузить сервер Диспетчер конфигурации SQL --> службы SQL Server --> SQL Server (SQLEXPRESS) --> щелкните правой кнопкой мыши --> перезапустить

Используйте правильные имена серверов и экземпляров (нужны оба!) Как правило, это будет .Именем sqlexpress\, например, см. снимок экрана из диалогового окна подключения QueryExpress.

enter image description here

Я только что установил SQL SERVER 2012 developer. Когда я создавал свой первый пакет служб SSIS, я получил эту ошибку каналов, когда пытался создать задачу подключения к данным в SQL Server 2012 Data Tools в окне Диспетчера соединений. Я решил с помощью поста выше.

Если вы выбираете именованный экземпляр и вызываете именованный экземпляр SSQDatabase1, а имя вашего ПК-PCX1. Необходимо ввести PCX1\SSQDatabase1 не только SSQDatabase1 или вы получите имя ошибка труб.

  • неправильная строка подключения, например, с помощью SqlExpress
  • именованные каналы (NP) не были включены в экземпляре SQL
  • удаленное соединение не было включено
  • сервер не запущен или указывает на не реальный сервер в строке подключения
  • другие причины, такие как неправильный контекст безопасности
  • попробуйте основные тесты подключения между двумя машинами, над которыми вы работаете

Я только что включил TCP / IP,через,именованные каналы в диспетчере конфигурации Sql Server , моя проблема решена обратитесь к этому для получения дополнительной информации Разрешение Именованных Каналов Ошибка 40

использовать ИМЯ СЕРВЕРА\ \ ЭКЗЕМПЛЯРА .Использование двойной обратной косой черты в моем проекте решило мою проблему.

TCP / IP именованный канал . оба включены

Веб-Конфигурации. (для localhost)

была такая же проблема. Провел, как 6 часов, когда пришлось перенести некоторые серверы. Пробовал все предложения, доступные по этой теме и другие.

решение было так же просто, как перезагрузка сервера!

при установлении соединения с 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 и решил эту проблему, используя следующие шаги:

  1. проверьте правильность работы служб SQL Server Services или нет.
  2. также проверьте работу в хорошем состоянии SQL Server (MSSQLSERVER).
  3. также проверьте работу браузера SQL Server.
  4. перезапустите 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

  1. выберите службы SQL Server справа.
  2. найдите свой сервер справа и перейдите к его свойствам (щелкните правой кнопкой мыши)
  3. изменить метод входа в локальную систему.

enter image description here

enter image description here

У меня была та же проблема и я решил проблему, отключив мой брандмауэр(ESET).

первым шагом для решения этой проблемы должна быть попытка пинговать свой собственный компьютер с другого компьютера. Если у вас включен брандмауэр, вы не сможете выполнить ping самостоятельно. Я попытался пинговать свой собственный компьютер, затем пинг не удался (не получил ответа от сервера)

  1. проверьте, работает нормально службы SQL Server services или нет.
  2. также проверьте на работу в хорошем состоянии SQL-сервер (служба mssqlserver).
  3. также проверьте, работает нормально браузер SQL Server.
  4. удалить все ранее псевдонимы, теперь создавать новые псевдонимы согласно вашим требованиям.
  5. теперь проверьте работу SQL Server по умолчанию порт 1433
  6. далее нажмите на клиентские протоколы в экземпляре, затем нажмите на TCP / IP, теперь щелкните правой кнопкой мыши, откройте свойство, здесь вы можете убедиться, что ваш рабочий штраф ваш порт по умолчанию SQL 1433.
  7. открыть среда SQL Server Management Studio щелкните правой кнопкой мыши, нажмите на "свойства опции" и нажмите на кнопку подключения tab, затем, наконец, отметьте разрешить удаленные подключения к этому серверу.
  8. проверьте правильность работы или ваш 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 в моем ядре базы данных. У него было два экземпляра, и я выбрал правильный.

enter image description here

для меня это была проблема брандмауэра.

сначала вам нужно добавить порт (например, 1444 и, возможно, 1434), но также

второй раз, когда я получил эту проблему, когда я вернулся к брандмауэру, пути были неправильными, и мне нужно было обновить форму 12 до 13! Простое нажатие на обзор на вкладке "программы и Службы" помогло это понять.

наконец, попробуйте выполнить команду

EXEC xp_readerrorlog 0,1, "не удалось зарегистрировать имя участника-службы", Null

для меня он вернул причину ошибки

вы найдете, скорее всего, ваше имя БД неверно, вы увидите имя сервера в VS, как "DESKTOP-0I14BKI", но если вы откроете SSMS, вы увидите РАБОЧИЙ СТОЛ-0I14BKI\SQLBLAHBLAH , просто добавьте "\SQLBLAHBLAH "(имя экземпляра) к вашему" имени сервера " в свойствах VS connection.

enter image description here

вы увидите:

enter image description here

Исправления:

Я пробовал почти все на этой странице, но у меня были некоторые основные проблемы, которые на самом деле нужно было решить. Я не смог сделать некоторые вещи, такие как open SQL Server Configuration Manager, которые в конечном итоге были повреждены/отсутствуют файлы поставщика WMI.

после того, как я исправил эту проблему, я смог подключиться к моей SQL db, как локально, так и удаленно.

В этом посте мы обсудим решение ошибки MS SQL Server 2. Большинство коммерческих компаний используют MS SQL для отслеживания посещаемости своих сотрудников. Некоторые люди используют его для отслеживания информации своих сотрудников. Какой бы ни была причина использования MS SQL Server, даже небольшая ошибка может раздражать пользователя. Одной из наиболее распространенных ошибок является ошибка 2. Обычно это происходит в результате проблемы с SQL Server Management Studio. О причине этой ошибки мы поговорим позже, но сначала поговорим о том, как вылечить MS SQL Error 2.

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

  • При попытке подключения сервера к SQL Server Management Studio ваши службы SQL отключаются и вызывают проблемы.
  • При подключении к серверу произошла ошибка в имени экземпляра SQL Server.
  • Администратор SQL отключил авторизацию, чтобы разрешить подключения удаленного доступа.
  • Возможно, номер порта SQL Server Management Studio неверен.
  • Браузер SQL Server отключается в диспетчере конфигурации SQL Server.
  • Порт SQL-сервера мог быть заблокирован системным брандмауэром.

Ошибка MS SQL Server 2: ручные решения

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

1. Службы SQL Server должны быть включены.

  • Чтобы запустить окно «Выполнить команду», нажмите Windows + R.
  • Чтобы выполнить заказ, введите команду compmgmt.msc в поле «Открыть» и нажмите кнопку «ОК».
  • Появится окно для управления компьютером. Настройка SQL Server в службах и приложениях с помощью Snap-on.
  • Щелкните Службы SQL Server.
  • Здесь показаны шесть различных типов служб SQL Server.
  • Начните работать над этими услугами.

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

2. Для SQL Server необходимо включить сетевой протокол TCP / IP.

  • Выберите «Службы и приложения» >> «Диспетчер конфигурации SQL Server» >> «Конфигурация собственного клиента SQL 11.0» в окне «Управление компьютером» (32-разрядная версия).
  • Выберите Client Protocols в меню SQL Native Client 11.0 Configuration (32 bit). Это покажет вам три протокола: общая память, TCP / IP и именованные каналы. Если кто-то отключит, включите их. Для этого щелкните правой кнопкой мыши любой протокол и выберите в меню пункт «Включить».
  • Чтобы узнать, устранена ли ошибка Microsoft SQL Server 2, подключитесь к SQL Server с помощью SQL Server Management Studio.

3. Должно быть включено разрешение на удаленное подключение.

  • На вашем компьютере откройте MS SQL Server Management Studio.
  • Перейдите к имени сервера в обозревателе объектов.
  • Выберите «Открыть», щелкнув правой кнопкой мыши имя сервера.
  • В левой части окна свойств сервера выберите Подключения.
  • Чтобы внести изменения, установите флажок «Разрешить удаленное подключение к серверу» и нажмите «ОК».

В ситуации, когда ваша база данных SQL становится недоступной

Заключение

Если пользователи видят, что сервер Microsoft SQL Server error 2 не может подключиться к локальному серверу SSMS по какой-либо причине, попробуйте перечисленные выше меры. Однако ошибки SQL Server часто вызваны повреждением файлов MDF. Если вы оказались в таком положении, попробуйте программу восстановления базы данных SQL. В результате это подробное руководство, в котором объясняется, как устранить ошибку MS SQL Error 2 на платформе Windows.

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

Не удается подключиться к Microsoft SQL Server по сети. Устраняем ошибку подключения

Итак, давайте начнем. Допустим, у нас есть Microsoft SQL Server, установленный на Windows, и мы будем пытаться подключится к нему по сети, например, из операционной системы Linux, используя Azure Data Studio.

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

Корректность ввода данных для подключения

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

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

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

Если не указать имя экземпляра, когда это имя необходимо указывать, мы получим ошибку

«provider: TCP Provider, error: 40 – could not open a connection to SQL Server»

А если допустить ошибку в имени экземпляра, то

«provider: TCP Provider, error: 25 – connection string is not valid»

Поэтому лучше сразу проверить корректность ввода данных для подключения.

Скриншот 1

Доступность сервера по сети

Если данные для подключения верны, то следующим шагом будет, конечно же, проверка доступности сервера, так как если сервер физически недоступен, то все следующие проверки будут абсолютно бесполезны и ни к чему не приведут.

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

«provider: TCP Provider, error: 25 – connection string is not valid»

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

Скриншот 2

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

Открытые порты в брандмауэре

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

Стандартный порт, на котором работает SQL Server, это 1433, соответственно, необходимо настроить правило для входящих подключений по порту 1433.

В случае если Вы используете именованный экземпляр SQL Server и динамические порты, то у Вас должно быть настроено правило для программы, в частности для исполняемого файла SQL Server – sqlservr.exe.

Для 2019 версии он расположен по следующему пути

«C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe»

Кроме этого, в данном случае необходимо еще открыть UDP порт 1434 для службы «Обозреватель SQL Server».

Запущена ли служба «Обозреватель SQL Server»

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

«provider: TCP Provider, error: 25 – connection string is not valid»

Поэтому запустите SQL Server Configuration Manager и проверьте соответствующую службу.

Скриншот 3

Запущена ли служба «SQL Server»

Если сервер физически доступен, необходимые порты открыты, то следующим шагом следует проверить, а запущена ли в принципе служба SQL Server.

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

Поэтому проверяем, запущена ли служба «SQL Server» в SQL Server Configuration Manager.

Скриншот 4

Включен ли протокол «TCP/IP»

Кроме всего вышеперечисленного необходимо проверить, включен ли протокол «TCP/IP» в сетевой конфигурации SQL Server, так как если SQL Server используется в сети, данный протокол обязательно должен быть включен.

Это можно проверить в SQL Server Configuration Manager в разделе «Сетевая конфигурация SQL Server».

Скриншот 5

Удаленные соединения с серверов

Также необходимо проверить, разрешены ли удаленные соединения с серверов. Это можно сделать в SQL Server Management Studio в свойствах сервера на вкладке «Соединения», параметр «Разрешить удаленные соединения с сервером» должен быть включен.

Скриншот 6

Права имени входа, сопоставление с пользователем базы данных

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

«При входе пользователя TestLogin произошла ошибка».

Поэтому необходимо проверить, сопоставлено ли имя входа с пользователем базы данных и предоставлены ли необходимые права.

Это можно сделать в SQL Server Management Studio, перейдите в контейнер «Безопасность -> Имена для входа», выберите нужное имя входа и зайдите в свойства этого имени. Затем на вкладке «Сопоставление пользователей» отметьте базы данных, с которыми будет сопоставлено данное имя входа, и задайте необходимые права в виде указания ролей базы данных.

Скриншот 7

Подведение итогов

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

Что необходимо сделать для устранения ошибки подключения к Microsoft SQL Server по сети:

Читайте также: