Ошибка при соединении с удаленным сервером sql

Приветствую всех посетителей сайта Info-Comp.ru! Сегодня мы рассмотрим ситуацию, когда Вы пытаетесь подключиться к Microsoft SQL Server по сети, но Вам это не удаётся, так как возникает та или иная ошибка подключения.

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

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

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

Заметка! Как подключиться к Microsoft SQL Server из Linux.

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

Содержание

  1. Корректность ввода данных для подключения
  2. Доступность сервера по сети
  3. Открытые порты в брандмауэре
  4. Запущена ли служба «Обозреватель SQL Server»
  5. Запущена ли служба «SQL Server»
  6. Включен ли протокол «TCP/IP»
  7. Удаленные соединения с серверов
  8. Права имени входа, сопоставление с пользователем базы данных
  9. Подведение итогов

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

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

Дело в том, что если мы неправильно укажем адрес сервера, или не укажем имя экземпляра 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

Заметка! Обзор инструментов для работы с Microsoft SQL Server.

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

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

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

«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 версии он расположен по следующему пути

Курс по SQL для начинающих

«C:Program FilesMicrosoft SQL ServerMSSQL15.MSSQLSERVERMSSQLBinnSqlservr.exe»

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

Подробная официальная инструкция «Настройка брандмауэра Windows для доступа к 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

Заметка! Сравнение Azure Data Studio с SQL Server Management Studio (SSMS).

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

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

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

Скриншот 5

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

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

Скриншот 6

Заметка! Как включить нумерацию строк кода в SQL Server Management Studio.

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

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

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

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

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

Скриншот 7

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

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

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

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

Проверить доступность физического сервера по сети

Открыть порты в брандмауэре (файрволе)

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

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

Проверить, включен ли протокол «TCP/IP»

Проверить, разрешены ли удаленные соединения с серверов

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

Заметка! Курсы по Transact-SQL для начинающих.

На сегодня это все, надеюсь, материал был Вам полезен, пока!

When I experienced this error in Visual Studio,

“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)”

…it was during the execution of the following C# code, which was attempting to obtain my SQL Server data to display it in a grid. The break occurred exactly on the line that says connect.Open():

        using (var connect = Connections.mySqlConnection)
        {
            const string query = "SELECT Name, Birthdate, Narrative FROM Friends";
            using (var command = new SqlCommand(query, connect))
            {
                connect.Open();
                using (var dr = command.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        // blah
                    }
                }
            }
        }

It was inexplicable because the SQL query was very simple, I had the right connection string, and the database server was available. I decided to run the actual SQL query manually myself in SQL Management Studio and it ran just fine and yielded several records. But one thing stood out in the query results: there was some improperly encoded HTML text inside a varchar(max) type field within the Friends table (specifically, some encoded comment symbols of the sort <!-- lodged within the «Narrative» column’s data). The suspect data row looked like this:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    &lt;!--HTML Comment -->Once upon a time...

Notice the encoded HTML symbol «&lt;«, which stood for a «<» character. Somehow that made its way into the database and my C# code could not pick it up! It failed everytime right at the connect.Open() line! After I manually edited that one row of data in the database table Friends and put in the decoded «<» character instead, everything worked! Here’s what that row should have looked like:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    <!--HTML Comment -->Once upon a time...

I edited the one bad row I had by using this simple UPDATE statement below. But if you had several offending rows of encoded HTML, you might need a more elaborate UPDATE statement that uses the REPLACE function:

UPDATE Friends SET Narrative = '<!--HTML Comment -->Once upon a time...' WHERE Narrative LIKE '&lt%'

So, the moral of the story is (at least in my case), sanitize your HTML content before storing it in the database and you won’t get this cryptic SQL Server error in the first place! (Uh, properly sanitizing/decoding your HTML content is the subject of another discussion worthy of a separate StackOverflow search if you need more information!)


К списку

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

  1. Правой кнопкой мыши кликните на меню ПускУправление компьютером;

  2. Перейдите в раздел Диспетчер конфигурации SQL Server (Configuration Manager SQL Server)Сетевая конфигурация SQL ServerПротоколы для MSSQLSERver;

  3. Включите протоколы TCP/IP и Именованные каналы;

  4. Перейдите в раздел Диспетчер конфигурации SQL Server (Configuration Manager SQL Server)Службы SQL Server и перезапустите службы.

Здравствуйте! Помогите, пожалуйста, решить проблему.

Начало описания.

Хочу поработать в  SQL Server Management Studio 15.0.18092.0

Клиентские средства служб Microsoft Analysis Services 15.0.1000.65

Компоненты доступа к данным (MDAC) 10.0.17134.1

Microsoft MSXML 3.0 6.0 

Microsoft Internet Explorer 9.11.17134.0

Microsoft .NET Framework 4.0.30319.42000

Операционная система 6.3.17134

 Нажимаю «Соединить», появляется ошибка: 

Отчет об ошибке: 

При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены
удаленные соединения. (provider: SQL Network Interfaces, error: 26 — Ошибка при обнаружении указанного сервера или экземпляра) (.Net SqlClient Data Provider)

ЗАГОЛОВОК: Соединение с сервером

——————————

Невозможно подключиться к DESKTOPMSSQLSERVER01.

——————————

ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ:

При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены
удаленные соединения. (provider: SQL Network Interfaces, error: 26 — Ошибка при обнаружении указанного сервера или экземпляра) (Microsoft SQL Server, ошибка: -1)

Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=-1&LinkId=20476

Моя догадка: не включена служба Виндовс 10 — хочу запустить, появляется ошибка:

Не удалось запустить службу SQL Server на Локальный компьютер. Подробности содержатся в журнале системных событий. Если эта служба разработана не в Майкрософт, обратитесь к разработчику службы, и сообщите специфический для этой службы код ошибки
17051.

Конец описания.

  • Перемещено

    29 марта 2019 г. 8:23

SQL Server — при установлении соединения с sql server произошла ошибка, связанная с сетью или конкретным экземпляром

 Сведения об ошибке или симптомы: не удается подключиться к SQL server, и вы получаете ошибку сетевая ошибка или ошибка конкретного экземпляра произошла при установлении соединения с sql server

Эта ошибка видна в установке SQL Express, так как по умолчанию установлен именованный экземпляр с именем экземпляра как Servername/SQLExpress.

Некоторые другие подобные ошибки:

поставщик: поставщик именованных каналов, ошибка: 40 – не удалось открыть соединение с sql server.

поставщик: сетевые интерфейсы sql, ошибка: 26-ошибка определения местоположения указанного сервера / экземпляра.

Решение:

Если мы подключаемся с Windows PC / Client к Windows server / SQL Server (сервер с установленным SQL Server) и получаем ошибку выше, то нам нужно проверить следующее:

В Windows SQL Server если мы пытаемся подключиться к именованному экземпляру то:

Убедитесь, что запущена служба Windows под названием “браузер SQL Server”.
Убедитесь, что брандмауэр Windows включен для входящего порта UDP 1434
убедитесь, что брандмауэр Windows включен для входящего порта TCP 1433
убедитесь в Диспетчере конфигурации SQL Server, что протокол TCP/IP включен и установлен в значение to 1433(может быть изменен при необходимости)

Кроме того, убедитесь, что

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

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

Понравилась статья? Поделить с друзьями:
  • Ошибка при соединении с сетевым принтером
  • Ошибка при соединении с snichecksrv
  • Ошибка при соединении с сервером ошибка сокета 10060
  • Ошибка при соединении с google play
  • Ошибка при соединении с ecu vag can pro