Ошибка при попытке соединения с 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-сервер не найден или недоступен, ошибки соединения с SQL-сервером
      • Ошибка SQL-сервера 26
      • Ошибка SQL-сервера 18456
      • Не удалось запустить SQL-server — код ошибки 3417
    • Повреждена база данных
      • Код ошибки SQL-сервера 945
      • Код ошибки SQL-сервера 5172
      • Ошибка SQL-сервера 823
      • Ошибка SQL-сервера 8946
    • Другие ошибки SQL Server
      • Код ошибки SQL-сервера 1814
      • Код ошибки SQL-сервера 1067
      • SQL-сервер запускается, но работает слишком медленно

SQL-сервер не найден или недоступен, ошибки соединения с SQL-сервером

  • Если SQL-сервер не найден, убедитесь, что ваш экземпляр SQL-сервера действительно установлен и запущен. Для этого зайдите на компьютер, где он установлен, запустите диспетчер конфигурации SQL и проверьте, есть ли там тот экземпляр, к которому вы пытаетесь подключиться и запущен ли он. Нелишним будет также получить отчет об обнаружении компонентов SQL-серверов.
  • Если вы проделали п1. и не обнаружили источник проблемы, возможно, неверно указан IP-адрес компьютера или номер порта TCP. Перепроверьте их настройки.
  • Причиной того, что невозможно подключиться к SQL-серверу, также может быть сеть, убедитесь, что компьютер с SQL-сервером доступен по сети.
  • Проверьте, может ли клиентское приложение, установленное на том же компьютере, что и сервер, подключиться к SQL-серверу. Запустите SQL Server Management Studio(SSMS), в диалоговом окне “Подключиться к серверу” выберите тип сервера Database Engine, укажите способ аутентификации “Аутентификация Windows”, введите имя компьютера и экземпляра SQL-сервера. Проверьте подключение.

Обратите внимание, что многие сообщения об ошибках могут быть не показаны или не содержат достаточной информации для устранения проблемы. Это сделано из соображений безопасности, чтобы при попытке взлома злоумышленники не могли получить информацию об SQL-сервере. Полные сведения содержатся в логе ошибок, который обычно хранится по адресу C:Program FilesMicrosoft SQL ServerMSSQL13.MSSQLSERVERMSSQLLogERRORLOG, или там, куда его поместил администратор системы.

Ошибка SQL-сервера 26

Одна из наиболее часто встречающихся ошибок подключения к SQL-серверу, обычно связана с тем, что в настройках SQL-сервера не разрешены или ограничены удаленные соединения. Чтобы это исправить, попробуйте:

  • в SSMS в настройках SQL-сервера включите аутентификацию Windows
  • для брандмауэра Windows  создайте новое правило, которое разрешает подключение для всех программ и протоколов с указанного IP-адреса
  • убедитесь, что запущена служба SQL Server Browser

Ошибка SQL-сервера 18456

Эта ошибка означает, что попытка подключиться к серверу не успешна из-за проблем с именем пользователя или паролем. По коду ошибки в журнале ошибок можно узнать более точную причину, чтобы устранить ее.

Не удалось запустить SQL-server — код ошибки 3417

Возникает в случае, если были изменены настройки Windows или перемещена папка с файлами MSSQL.

  • зайдите в C:Program FilesMicrosoft SQLServerMSSQL.1MSSqLData — БезопасностьНастройки доступа — Учетная запись сетевой службы — добавьте учетную запись сетевой службы
  • проверьте, что MDF-файл не сжимается. Если это не так, отключите “Сжимать содержимое для экономии места на диске” в свойствах файла

Иногда ни один из этих способов не помогает, это значит, что файлы БД повреждены и ее придется восстанавливать из резервной копии.

Повреждена база данных

Код ошибки SQL-сервера 945

Ошибка 945 возникает, когда БД SQL-сервера помечена как IsShutdown. Проверьте, достаточно ли места на диске, достаточно ли прав у учетной записи для операций с БД, файлы MDF и LDF не должны быть помечены “Только для чтения”.

Код ошибки SQL-сервера 5172

SQL-сервер хранит свою физическую БД в первичном файле, в котором информация разбита постранично. Первая страница содержит информацию о заголовке mdf-файла и называется страницей заголовка. Она состоит из разнообразной информации о БД, такой как размер файла, подпись и т.д. В процессе прикрепления MDF на SQL-сервере часто возникает ошибка 5172. Это в основном происходит, если MDF-файл поврежден, информация в его заголовке тоже и соответственно сложно добраться до данных. Причиной может быть вирус, аварийное выключение системы, ошибка оборудования.

Ошибка SQL-сервера 823

SQL использует API Windows для операций ввода-вывода, но кроме завершения этих операций SQL проверяет все ошибки обращений к API. Если эти обращения несовместимы с ОС, появляется ошибка 823. Сообщение об ошибке 823 означает, что существует проблема с базовым оборудованием для хранения данных или с драйвером, который находится на пути запроса ввода-вывода. Пользователи могут столкнуться с этой ошибкой, если в файловой системе есть противоречия или поврежден файл базы данных.

Ошибка SQL-сервера 8946

Основной причиной ошибки 8946 так же, как и для 5172, является повреждение заголовков страниц БД SQL вследствие сбоя питания, вирусной атаки, отказа оборудования — SQL-сервер больше не может прочесть эти страницы.

Перечисленные ошибки 945, 5172, 823, 8946 можно устранить двумя методами:

  • если у вас есть свежая резервная копия базы — восстановить базу из этой копии
  • можно попробовать использовать специализированное ПО, такое как SQL Recovery Tool, чтобы восстановить поврежденные файлы

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

Другие ошибки SQL

Код ошибки SQL-сервера 1814

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

Код ошибки SQL-сервера 1067

Эта ошибка может возникать по разным причинам. Наиболее часто оказывается, что повреждены или отсутствуют конфигурационные файлы, SQL-сервер обращается к поврежденным системным файлам, ошибочные данные пользователя, нет информации про лицензию. В самых тяжелых случаях придется переустанавливать SQL-сервер. Но иногда помогает восстановление поврежденных файлов или изменение настроек SQL-сервера — вы можете создать новую учетную запись в домене и использовать ее для службы MSSQL.

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

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

Мы работаем с разными версиями SQL-сервера уже много лет, знакомы со всевозможными инструкциями SQL-сервера, видели самые разные варианты его настройки и использования на проектах у своих клиентов. В целом мы можем выделить четыре основных источника неполадок:

  • Индексы — причина проблем номер один. Неправильные индексы, отсутствующие индексы, слишком много индексов и подобное. Чаще всего при проблеме с индексами пользователи или администраторы базы данных не получают сообщения об ошибке, они просто видят, что база работает очень медленно и докопаться до причин бывает очень нелегко
  • изначально плохая архитектура сервера баз данных — ошибка, которую очень сложно и дорого исправлять на этапе, когда база уже используется
  • плохой код, в котором возможны блокировки и тупиковые места
  • использование конфигурации по умолчанию,

Если у вас не получается устранить ошибки сервера SQL-server самостоятельно, если они появляются снова и снова, то скорее всего в основе лежит одна из этих причин. В таком случае — если у вас произошла ошибка с SQL сервером, ваше ПО не видит SQL-сервер, либо нужно развернуть кластер SQL-серверов — вы всегда можете обратиться за консультацией и технической поддержкой к специалистам Интегруса, отправив заявку с сайта, написав на e-mail, либо позвонив в колл-центр нашей компании.

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

Кейсы и стратегии от экспертов рынка.


К списку

В случае, если при попытке соединения с 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 и перезапустите службы.

sp1

Эта ошибка возникает в двух случаях:

1. Вы не установили на свой ПК MS SQL Server. Ссылки на установочные файлы можно найти здесь →.

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

2.1. Средствами MS SQL Server

— В меню Пуск щелкните правой кнопкой пункт Все программы, укажите Microsoft SQL Server 2005, Средства настройки и выберите пункт Диспетчер конфигурации SQL Server.

sp2

— В диспетчере конфигурации SQL Server выберите пункт Службы SQL Server.

sp3

— В области подробных сведений щелкните службу SQL Server правой кнопкой мыши и выберите Запустить .

sp4

После этих операций попробуйте снова подключится к БД.

2.2 Средствами Windows

После выхода Windows 10 многие пользователи стали жаловаться, что у них нет «Диспетчера конфигурации SQL Server» в Программах меню Пуск. Действительно, по неизвестным причинам при обновлений до Windows 10 «Диспетчер конфигурации SQL Server» удаляется из установленного SQL Server. В этом случае (и других случаях) службу можно запустить стандартными средствами Windows — через «Диспетчер задач«. Нажимаете ALT + CTRL + DEL на клавиатуре и выбираете пункт «Диспетчер задач«. Если вы ранее не открывали «Диспетчер задач», то он откроется в сокращенном виде, чтобы открыть Подробный вид, нажмите кнопку со стрелкой вниз и надписью «Подробнее«.

Ошибка "При установлении соединения с SQL Server произошла ошибка". Способы решения.

Перейдите на вкладку «Службы» и ищете службу, в описании которой будет надпись формата «SQL Server (ИмяЭкземпляра)«. Имя экземпляра может быть разным — это то имя которое Вы указываете при установке SQL Server. На скриншоте ниже ИмяЭкземпляра — SQLExpress.

Ошибка "При установлении соединения с SQL Server произошла ошибка". Способы решения.

Нажимаете правой кнопкой мыши по данной службе и выбираете в контекстном меню «Запустить«.

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

При переустановке системы, главное сохранить файлы БД (mdf и ldf). Чтобы подключить эти файлы к SQL Server нужно чтобы SQL Server был той же версии с которой эти файлы работали ранее иначе они не подключатся. См. видео как подключить файлы БД к серверу:
https://www.youtube.com/watch?v=LlkredRutFE

Вопрос:

Возникают проблемы при подключении к SQL Server, при этом в сообщении об ошибке встречается фрагмент:

  1. «Ошибка подключения к серверу

    SQL

    «;

  2. «Ошибка подключения к экземпляру сервера

    SQL

    «;

  3. «При установлении соединения с

    SQL

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

  4. «Error 26»;

  5. «Error: 40».

Что можно сделать для решения таких проблем?

Ответ:

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

Инструкция по устранению наиболее часто возникающих проблем с подключением к SQL Server:

1) Проверьте, что имя сервера задано верно (в частности, если компьютер был переименован):


Также проверьте, что имя экземпляра (в данном случае – SQLEXPRESS) задано верно. При необходимости допишите его вручную в поле «Сервер баз данных».
Примечание. Если SQL Server был установлен автоматически при установке Business Studio, то имя экземпляра должно быть SQLEXPRESS.

2) Если сервер SQL находится не на локальном компьютере, то проверьте, что компьютер включен и подключен к сети.

3) Проверьте, что SQL Server запущен и настроен верно. Далее приведен пример для SQL Server 2014 (подходит и для других версий SQL Server, начиная с 2008)1):

a. Откройте Пуск->Все программы->Microsoft SQL Server 2014->Диспетчер конфигурации SQL Server 2014.

b. Проверьте, что запущена служба SQL Server (на скриншоте пример для экземпляра SQLEXPRESS), т.е. что она находится в состоянии «Работает»:

c. Проверьте, что запущена служба обозревателя SQL Server (SQL Server Browser), т.е. что она находится в состоянии «Работает»:

d. Проверьте, что удаленные соединения разрешены, т.е. что состояние протоколов «Именованные каналы» и «TCP/IP» для рассматриваемого экземпляра SQL Server – «Включено»:

4) Проверьте, что никакие брандмауэры на компьютере с сервером SQL не блокируют соединение со службой SQL. То же касается и антивирусов, т.к. некоторые из них имеют функции брандмауэров. Обратитесь к документации по этим средствам. Для проверки можно временно отключить их.
Далее приведен пример для встроенного брандмауэра Windows 7:

a. Откройте Пуск->Панель управления->Брандмауэр Windows, перейдите на закладку «Разрешить запуск программы или компонента через брандмауэр Windows» (для Windows 10 необходимо вызвать контекстное меню правой кнопкой мыши от кнопки «Пуск»->Сетевые подключения->Брандмауэр Windows->Брандмауэр и безопасность сети->Разрешить работу с приложением через брандмауэр) и нажмите кнопку «Изменить параметры».

b. Добавьте следующие программы, как показано на рисунке (повторив поз. 1-3 для каждой из программ)2):

  • C:Program Files (x86)Microsoft

    SQL

    ServerMSSQL12.SQLEXPRESSMSSQLBinnsqlservr.exe (служба SQL Server)

  • C:Program Files (x86)Microsoft

    SQL

    Server90Sharedsqlbrowser.exe (cлужба обозревателя SQL Server)

c. Перезапустите вышеуказанные службы.

5) Возможно, имеются проблемы с разрешением сетевых имен. Попробуйте в окне Свойств подключения к базе данных в поле «Сервер базы данных» указать вместо имени компьютера его IP-адрес. Например, так:

В случае локального сервера SQL укажите IP-адрес 127.0.0.1, в случае удаленного – узнайте у администратора сети.

6) Если ничего не помогает, воспользуйтесь полной статьей от Microsoft по данной теме. Если на компьютере, где находится

SQL

Server, соединение успешно — можно сразу перейти к Шагу 9 статьи от Microsoft.

Внимание! Выполнение данных действий может потребовать квалификации и полномочий системного администратора.

Понравилась статья? Поделить с друзьями:
  • Ошибка при попытке расшифровать сообщение стек java lang nullpointerexception
  • Ошибка при попытке присоединиться к игре
  • Ошибка при попытке получить доступ к микрофону на ноутбуке
  • Ошибка при попытке получить доступ к микрофону как исправить
  • Ошибка при попытке получить доступ к микрофону закрыть