Поделиться через


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

Применяется к: SQL Server

Сводка

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

Распространенные сообщения об ошибках подключения SQL Server

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

поставщик: именованные каналы, ошибка: 40. Не удалось открыть подключение к SQL Server (Microsoft SQL Server, ошибка: 53) При подключении к SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Проверьте правильность имени экземпляра и настройку сервера SQL Server для удаленных подключений.
поставщик: поставщик именованных каналов, ошибка: 40 — не удалось открыть подключение к SQL Server (Microsoft SQL Server, ошибка: 53)
поставщик: поставщик TCP, ошибка: 0 — данный узел неизвестен. (Microsoft SQL Server, ошибка: 11001)

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

Истек срок ожидания входа Ошибка канала передачи данных в клиенте Native Client SQL Server
[Microsoft SQL Server Native Client 10.0]: истекло время ожидания входа
[Microsoft SQL Server Native Client 10.0]: произошла ошибка, связанная с сетью или экземпляром, при установке подключения к SQL Server. Сервер не найден или недоступен. Проверьте, правильно ли указано имя экземпляра и настроен ли SQL Server для открытия удаленных соединений. Дополнительные сведения см. в электронной документации по SQL Server.
[Microsoft SQL Server Native Client 10.0]: сетевые интерфейсы SQL Server: ошибка поиска сервера или экземпляра, указанного [xFFFFFFFFFFFF].

Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера При подключении к SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Проверьте правильность имени экземпляра и настройку сервера SQL Server для удаленных подключений.
поставщик: поставщик TCP, ошибка: 0
Попытка установить подключение была безуспешной, так как от другого компьютера за требуемое время не получен нужный отклик, или уже установленное подключение было разорвано из-за отсутствия ответа от уже подключенного компьютера.
Microsoft SQL Server, ошибка: 10060

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

[Майкрософт][собственный клиент SQL Server 11.0]Поставщик TCP: подключение не может быть сделано, так как целевой компьютер активно отказался от него Ошибка канала передачи данных в клиенте Native Client SQL Server
\[Microsoft\][SQL Server Native Client 11.0]TCP Provider: подключение не может быть сделано, так как целевой компьютер активно отказался от него.
\[Microsoft\][SQL Server Native Client 11.0]Истек срок ожидания входа.
\[Microsoft\][SQL Server Native Client 11.0]Произошла ошибка, связанная с сетью или экземпляром, при установке подключения к SQL Server. Сервер не найден или недоступен. Проверьте, правильно ли указано имя экземпляра и настроен ли SQL Server для открытия удаленных соединений. Дополнительные сведения см. в электронной документации по SQL Server.

«SQL Server не существует, либо в доступе к нему отказано»

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

  • Неверное имя компьютера, на котором размещен SQL-сервер.
  • Экземпляр не разрешает правильный IP-адрес.
  • Номер TCP-порта указан неправильно.

Примечание.

Сведения об устранении неполадок с подключением в сценариях высокой доступности см. в следующих статьях:

Ошибка Windows 233: процесс не находится в другом конце канала

Полное сообщение:

Подключение к серверу успешно установлено, но затем произошла ошибка при входе. (Поставщик: поставщик общей памяти, ошибка: 0 — На другом конце канала отсутствует процесс.) (Microsoft SQL Server, ошибка: 233)

Это сообщение означает, что SQL Server не прослушивает протокол общей памяти или именованных каналов.

Сбор сведений об устранении ошибок подключения SQL Server

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

Использование средства проверки SQL для сбора необходимых сведений

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

Сбор данных по отдельности с помощью следующих процедур

Получение имени экземпляра из диспетчера конфигурации

На сервере, на котором размещается экземпляр SQL Server, используйте диспетчер конфигурации SQL Server для проверки имени экземпляра:

Примечание.

Диспетчер конфигурации устанавливается на компьютере автоматически при установке SQL Server. Инструкции по запуску диспетчера конфигурации немного различаются в зависимости от версий SQL Server и Windows. Дополнительные сведения для конкретной версии см. в разделе Диспетчер конфигурации SQL Server.

  1. Войдите на компьютер, на котором размещается экземпляр SQL Server.

  2. Запустите диспетчер конфигурации SQL Server.

  3. На левой панели выберите Службы SQL Server.

  4. В области справа проверьте имя экземпляра ядра СУБД.

    • SQL SERVER (MSSQLSERVER) указывает экземпляр по умолчанию SQL Server. Имя экземпляра по умолчанию — <имя> компьютера.
    • SQL SERVER (<имя> экземпляра) указывает именованный экземпляр SQL Server. Имя именованного экземпляра — <имя> компьютера\<имя> экземпляра.

Получение IP-адреса сервера

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

  1. В меню Пуск выберите Выполнить. В окне "Запуск " введите cmdи нажмите кнопку "ОК".

  2. В окне командной строки введите ipconfig /all и нажмите клавишу ВВОД. Обратите внимание на IPv4-адрес и IPv6-адрес.

    Примечание.

    SQL Server можно подключиться с помощью протокола IP версии 4 или 6. Ваша сеть может использовать обе версии.

Получение TCP-порта экземпляра

В большинстве случаев подключение к ядру СУБД на другом компьютере осуществляется с помощью протокола TCP. Чтобы получить TCP-порт экземпляра, выполните следующие действия:

  1. Используйте SQL Server Management Studio на компьютере, на котором выполняется SQL Server, и подключитесь к экземпляру SQL Server. В обозревателе объектов последовательно разверните разделы Управление, Журналы SQL Server, а затем дважды щелкните текущий журнал.

  2. В средстве просмотра журнала выберите Фильтр на панели инструментов. В поле Сообщение содержит текст введите сервер прослушивает, выберите Применить фильтр и нажмите кнопку ОК.

  3. Должно появиться сообщение, аналогичное "Сервер прослушивает [ any" <ipv4> 1433].

    Это сообщение указывает, что экземпляр SQL Server прослушивает все IP-адреса на этом компьютере (для протокола IP версии 4) и TCP-порт 1433. TCP-порт 1433 обычно является портом, используемым ядром СУБД или экземпляром SQL Server по умолчанию. Этот порт может использовать только один экземпляр SQL Server. При установке нескольких экземпляров SQL Server некоторые экземпляры должны использовать другие номера портов. Обратите внимание на номер порта, используемый экземпляром SQL Server, к которому вы пытаетесь подключиться.

    Примечание.

    • Вероятно, указан IP-адрес 127.0.0.1. Он называется адресом адаптера замыкания на себя. Только процессы на одном и том же компьютере могут использовать IP-адрес для подключения.
    • Журнал ошибок SQL Server также можно просмотреть с помощью текстового редактора. По умолчанию журнал ошибок размещается в файлах Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG и ERRORLOG.n. Для получения дополнительной информации см. раздел Просмотр журнала ошибок SQL Server.

Убедитесь, что экземпляр запущен

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

Использование выходного файла SQLCHECK

  1. Выполните поиск выходного файла SQLCHECK в поле "Сведения о SQL Server".
  2. В разделе "Службы интереса" найдите экземпляр SQL Server в столбцах "Имя и экземпляр (для именованных экземпляров) и проверьте его состояние с помощью столбца "Начало ". Если значение равно True, службы запущены. В противном случае служба сейчас не запущена.
  3. Если служба не запущена, запустите службу с помощью SQL Server Management Studio, диспетчераконфигурации SQL Server, PowerShell или applet служб.

Используйте диспетчер конфигурации SQL Server

Чтобы убедиться, что экземпляр выполняется, выберите пункт Службы SQL Server в диспетчере конфигурации SQL Server и проверьте символ для экземпляра SQL Server.

  • Зеленая стрелка указывает, что экземпляр выполняется.
  • Красный квадрат указывает, что экземпляр остановлен.

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

Использование команд PowerShell

Используйте следующую команду в PowerShell, чтобы проверить состояние служб SQL Server в системе:

Get-Service | Where {$_.status -eq 'running' -and $_.DisplayName -like "sql server*"}

Вы можете использовать следующую команду для поиска в файле журнала ошибок определенной строки «SQL Server готов для клиентских подключений». Это сообщение является информационным; никаких действий пользователя не требуется».

Get-ChildItem -Path "c:\program files\microsoft sql server\mssql*" -Recurse -Include Errorlog | Select-String "SQL Server is now ready for client connections."

Убедитесь, что служба браузера SQL Server запущена

Используйте один из следующих методов, чтобы проверить, запущена ли служба браузера SQL Server.

Примечание.

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

Использование выходного файла SQLCHECK

  1. Выполните поиск выходного файла SQLCHECK в поле "Сведения о SQL Server".
  2. В разделе "Службы интересов" выполните поиск SQLBrowser в столбце "Имя " и проверьте его состояние с помощью столбца "Начало ". Если значение равно True, служба запускается. В противном случае служба не запущена, и ее необходимо запустить. Дополнительные сведения см. в разделе Запуск, остановка, приостановка, возобновление, перезапуск служб SQL Server.

Используйте диспетчер конфигурации SQL Server

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

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

Дополнительные сведения об остановке и запуске служб SQL Server см. в разделе "Пуск", "Остановка", "Приостановка", "Возобновление", "Перезапуск служб SQL Server".

Примечание.

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

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

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

Примечание.

Если вы используете средство SQLCHECK, просмотрите значения NetBios Name/FQDN в разделе сведений о компьютере выходного файла.

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

Псевдонимы часто используются в клиентских средах при подключении к SQL Server с помощью альтернативного имени или при наличии проблем с разрешением имен в сети. Они создаются с помощью диспетчера конфигурации SQL Server или служебной программы клиентской сети. Неправильный псевдоним может привести к подключению приложений к неправильному серверу, что вызовет сбой. Используйте следующие способы, чтобы проверить наличие неправильных псевдонимов. Вы также можете использовать средство (например SQLCHECK) на клиентском компьютере для проверки псевдонимов и других параметров, связанных с подключением, на клиентском компьютере.

Примечание.

Следующие параметры применяются только к приложениям, которые используют клиент Native Client SQL Server для подключения к SQL Server.

Использование выходного файла SQLCHECK

  1. В выходном файле SQLCHECK найдите строку SQL Aliases. Эта строка находится в разделе сведений о безопасности клиента и драйверах файла.
  2. Просмотрите записи в таблице. Если записи отсутствуют, на компьютере нет псевдонимов. Если имеется запись, просмотрите сведения, чтобы убедиться, что для имени сервера и номера порта заданы правильные значения.

Пример результата:
Псевдонимы SQL:

Alias Name   Protocol   Server Name     Port   32-bit 

----------   --------   ------------    ----   ------ 

prodsql      TCP        prod_sqlserver  1430      

Выходные данные указывают, что prodsql это псевдоним для SQL Server, который prod_sqlserver выполняется через порт 1430.

Проверка псевдонимов в диспетчере конфигурации SQL Server

  1. В диспетчере конфигурации SQL Server разверните узел Конфигурация собственного клиента SQL Server и выберите Псевдонимы.

  2. Проверьте, определены ли псевдонимы для сервера, к которому вы пытаетесь подключиться.

    Если псевдонимы существуют, выполните следующие действия:

    1. Откройте панель Свойства псевдонима.
    2. Переименуйте значение в поле Имя псевдонима (например, если имя сервера — MySQL, переименуйте его в MySQL_test) и повторите попытку подключения. Если подключение работает, псевдоним неверный и может поступать из старой конфигурации, которая больше не нужна. Если подключение не работает, переименуйте псевдоним, вернув ему первоначальное имя, и перейдите к следующему шагу.
    3. Проверьте параметры подключения для псевдонима и убедитесь, что они верны. Следующие распространенные сценарии могут вызвать проблемы с подключением:
      • Неправильный IP-адрес для поля Сервер. Убедитесь, что IP-адрес соответствует записи в файле журнала ошибок SQL Server.
      • Неправильное имя сервера в поле Сервер. Например, псевдоним сервера указывает на правильное имя сервера. Однако подключения завершаются ошибкой, если значение параметра имени сервера неверно.
      • Неправильный формат имени канала (при условии, что используются псевдонимы именованных каналов).
        • При подключении к экземпляру по умолчанию с именем Mydefaultinstance имя канала должно быть \\Mydefaultinstance\pipe\sql\query.
        • При подключении к именованном экземпляру MySQL\Name имя канала должно быть \\MySQL\pipe\MSSQL$Named\sql\query.

Проверка псевдонимов в служебной программе клиентской сети SQL Server

  1. Откройте служебную программу клиентской сети SQL Server, введя cliconfg.exe в окне команды «Выполнить».
  2. Выполните шаг 2 в разделе "Проверка псевдонимов" в диспетчере конфигурации SQL Server.

Проверка конфигурации брандмауэра

Конфигурацию брандмауэра можно проверить в зависимости от экземпляра по умолчанию или именованного экземпляра.

Примечание.

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

Экземпляр по умолчанию SQL Server

Экземпляр по умолчанию обычно выполняется через порт 1433. Некоторые установки также используют нестандартный порт (кроме 1433) для запуска экземпляров SQL. Брандмауэр может блокировать любой порт. Чтобы проверить номер порта, выполните следующие действия.

  1. Определите порт, на котором выполняется экземпляр SQL, ознакомившись с информацией в разделе Получение TCP-порта экземпляра.
  2. Проверьте конфигурацию брандмауэра:
    • Если SQL Server настроен на прослушивание порта 1433, убедитесь, что брандмауэры в сети между клиентом и сервером разрешают трафик через этот порт. Ознакомьтесь с разделом Настройка брандмауэра Windows для доступа к ядру СУБД и обратитесь к администратору сети для реализации необходимых решений.
    • Если экземпляр SQL Server по умолчанию не использует порт 1433, попробуйте добавить номер порта SQL Server в имя сервера с помощью формата <servername>,<portnumber> и проверить, работает ли он. Например, если имя экземпляра SQL — MySQLDefaultinstance и оно выполняется через порт 2000, укажите имя сервера в качестве MySQLServer 2000 и проверьте, работает ли она.
      • Если подключение не работает, брандмауэр блокирует порт. Вы можете выполнить инструкции в разделе Настройка брандмауэра Windows для доступа к ядру СУБД или обратитесь к администратору сети, чтобы добавить порт в список исключений брандмауэра.
      • Если подключение работает, брандмауэр разрешает обмен данными через этот порт. Необходимо изменить строку подключения, чтобы использовать номер порта и имя сервера в строке подключения приложения.

Именованный экземпляр SQL Server

Если экземпляр SQL является именованным экземпляром, его можно настроить для использования динамических портов или статического порта. В любом случае базовые сетевые библиотеки запрашивают службу обозревателя SQL Server, запущенную на компьютере SQL Server через UDP-порт 1434, чтобы перечислить номер порта для именованного экземпляра. Если брандмауэр между клиентом и сервером блокирует этот UDP-порт, клиентская библиотека не может определить порт (требование для подключения) и подключение завершается сбоем. Для проверки подключения воспользуйтесь одним из описанных ниже способов:

  • Способ 1. Проверьте подключение, указав номер порта в строке подключения.

    1. Определите порт, на котором выполняется экземпляр SQL, ознакомившись с информацией в разделе Получение TCP-порта экземпляра.
    2. Попробуйте подключиться к именованном экземпляру с помощью номера порта, добавленного к имени сервера в формате <servername\instancename>,<portnumber> , и проверьте, работает ли это. Например, если имя экземпляра SQL — MySQL\Namedinstance и он выполняется на порте 3000, укажите имя сервера MySQL\Namedinstance,3000.
      • Если подключение работает, брандмауэр блокирует порт UDP 1434 или экземпляр скрыт из браузера SQL Server.
      • Если подключение не работает, существует одна из следующих ситуаций:
        • Заблокирован UDP-порт 1434 или статический порт, либо оба порта. Чтобы убедиться, что заблокирован UDP-порт или статический порт, используйте Portqry.
        • Экземпляр скрыт от службы обозревателя SQL Server.
  • Способ 2. Проверьте подключение с помощью средства PortQryUI.

    Используйте средство PortQryUI с именованным экземпляром и просмотрите полученные выходные данные. Может появиться сообщение о фильтрации порта UDP 1434. Это сообщение указывает, что порт заблокирован в сети. Инструкции по использованию средства см. в разделе Использование средства PortQryUI с SQL Server.

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

    • Сценарий 1. Динамические порты. В этом случае убедитесь, что служба обозревателя SQL Server запущена и UDP-порт 1434 не блокируется в брандмауэре между клиентом и сервером. Если вы не можете выполнить одно из этих действий, переключите экземпляр SQL Server на статический порт и используйте процедуру, описанную в статье "Настройка сервера для прослушивания определенного TCP-порта".
    • Сценарий 2. Настройка статического порта. Обозреватель SQL Server не запущен или UDP-порт 1434 не может быть открыт в брандмауэре. В этом случае обязательно укажите статический порт в строке подключения и убедитесь, что брандмауэр не блокирует порт. Дополнительные сведения см. в разделе Настройка брандмауэра Windows для доступа к ядру СУБД.

Проверка включенных протоколов в SQL Server

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

Использование выходного файла SQLCHECK

  1. Найдите выходной файл SQLCHECK в разделе "Сведения об экземпляре SQL Server" и найдите раздел сведений для экземпляра SQL Server.

  2. В разделе найдите значения, перечисленные в следующей таблице, чтобы определить, включены ли протоколы SQL Server:

    Имя параметра Последствие Дополнительная информация
    Включена общая память Может иметь значение true или false. Влияет только на локальные подключения. Создание допустимой строки подключения с помощью протокола общей памяти
    Именованные каналы включены Если значение false, локальные и удаленные подключения с помощью именованных каналов завершаются ошибкой. Выбор сетевого протокола
    TCP включен Если значение false, локальные и удаленные подключения с использованием TCP/IP завершается ошибкой.
    Примечание: Большинство установок SQL Server используют TCP/IP в качестве протокола связи между сервером и клиентом.
    Выбор сетевого протокола
  3. Включите необходимые протоколы с помощью диспетчера конфигурации SQL Server или SQL Server PowerShell. Дополнительные сведения см. в разделе Включение или отключение сетевого протокола сервера.

    Примечание.

    После включения протокола необходимо остановить и перезапустить ядро СУБД, чтобы изменения вступили в силу.

Используйте диспетчер конфигурации SQL Server

Чтобы включить подключения с другого компьютера с помощью диспетчера конфигурации SQL Server, выполните следующие действия:

  1. Откройте диспетчер конфигурации SQL Server.
  2. В области слева разверните узел Сетевая конфигурация SQL Server, а затем выберите экземпляр SQL Server, к которому нужно подключиться. В области справа перечислены доступные протоколы подключения. Общая память обычно включена. Он работает только с одного компьютера, поэтому большинство установок оставляют общий объем памяти включенным. Чтобы подключиться к SQL Server с другого компьютера, используйте TCP/IP. Если TCP/IP не включен, щелкните правой кнопкой мыши TCP/IP и выберите Включить.
  3. Если вы изменяете включенный параметр для любого протокола, перезапустите ядро СУБД. На левой панели выберите Службы SQL Server. В области справа щелкните правой кнопкой экземпляр ядра СУБД, а затем щелкните Перезапустить.

Проверка подключения TCP/IP

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

  1. В меню Пуск выберите Выполнить. В окне "Запуск " введите cmd и нажмите кнопку "ОК".
  2. В окне командной строки введите ping и IP-адрес компьютера, на котором работает SQL Server. Например:
    • IPv4: ping 192.168.1.101
    • IPv6: ping fe80::d51d:5ab5:6f09:8f48%11
  3. Если сеть настроена правильно, ping возвращает Reply from <IP address> дополнительные сведения. Если ping возвращает Destination host unreachable или Request timed out, TCP/IP настроен неправильно. Ошибки на этом этапе указывают на проблему с клиентским компьютером, серверным компьютером или что-то о сети, например маршрутизатором. Сведения об устранении проблем с сетью см. в разделе Расширенное устранение неполадок с TCP/IP.
  4. Если тест ping с помощью IP-адреса завершается успешно, проверьте, можно ли разрешить имя компьютера в TCP/IP-адрес. На клиентском компьютере в окне командной строки введите ping и имя компьютера под управлением SQL Server. Например, ping newofficepc.
  5. Если проверка связи по IP-адресу завершается успешно, но проверка связи с именем компьютера возвращает Destination host unreachable или Request timed out, на клиентском компьютере кэшируются старые (устаревшие) сведения о разрешении имен. Введите ipconfig /flushdns , чтобы очистить кэш DNS (система доменных имен). Затем снова проверьте связь с компьютером по имени. Если кэш DNS пуст, клиентский компьютер проверяет последние сведения об IP-адресе серверного компьютера.
  6. Если сеть настроена правильно, ping возвращает Reply from <IP address> дополнительные сведения. Если вы можете успешно выполнить проверку подключения к серверу по IP-адресу, но получить ошибку, например Destination host unreachableRequest timed out при подключении по имени компьютера, разрешение имен не настроено правильно. Дополнительные сведения см. в разделе "Устранение неполадок с базовым tcp/IP". Для подключения к SQL Server не требуется успешное разрешение имен. Однако если имя компьютера не удается разрешить в IP-адрес, необходимо указать IP-адрес при подключении. Вы можете исправить разрешение имен позже.

Примечание.

Вы также можете использовать командлет Test-NetConnection или Test-Connection для проверки подключения TCP в соответствии с версией PowerShell, установленной на компьютере. Дополнительные сведения о командлетах PowerShell см. в разделе "Обзор командлетов".

Проверка локального подключения

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

Для этой процедуры требуется СРЕДА SQL Server Management Studio. Если у вас не установлено средство Management Studio, ознакомьтесь с разделом Загрузка SQL Server Management Studio (SSMS).

Если вы не можете установить Management Studio, вы можете проверить подключение с помощью служебной программы sqlcmd. Файл sqlcmd.exe устанавливается с ядром СУБД.

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

  2. На начальной странице введите SQL Server Management Studio или в меню "Пуск " старых версий Windows выберите "Все программы>Microsoft SQL Server SQL Server>Management Studio".

  3. В раскрывающемся меню Подключение выберите Ядро СУБД. В поле Проверка подлинности выберите Проверка подлинности Windows. В поле Имя сервера введите один из следующих типов подключений:

    Подключение к Тип Пример
    Экземпляр по умолчанию <computer name> ACCNT27
    Именованный экземпляр <computer name\instance name> ACCNT27\PAYROLL

    Примечание.

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

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

    Примечание.

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

  5. Если ошибка входа 18456 не выполнена для пользователя, статья MSSQLSERVER_18456 содержит дополнительные сведения о кодах ошибок. В блоге Аарона Бертрана (Aaron Bertrand) также содержится обширный список кодов ошибок, указанный в разделе Устранение ошибки 18456 (внешняя ссылка). Журнал ошибок можно просмотреть с помощью SSMS (если вы можете подключиться), в разделе "Управление" обозревателя объектов. В противном случае журнал ошибок можно просмотреть с помощью Блокнота. Расположение по умолчанию зависит от версии и может быть изменено во время установки. Расположение по умолчанию для SQL Server 2019 (15.x) — C:\Program Files\Microsoft SQL Server\MSSQL15. MSSQLSERVER\MSSQL\Log\ERRORLOG.

  6. Если вы можете подключиться с помощью общей памяти, протестируйте подключение по протоколу TCP. Вы можете принудительно установить TCP-подключение, указав tcp: перед именем. Примеры:

    Подключение к: Тип: Пример:
    Экземпляр по умолчанию tcp:<computer name> tcp:ACCNT27
    Именованный экземпляр tcp:<computer name/instance name> tcp:ACCNT27\PAYROLL
  7. Если вы можете подключиться с помощью общей памяти, но не TCP, исправьте проблему TCP. Наиболее вероятной проблемой является то, что протокол TCP не включен. Сведения о включении TCP см. в статье "Проверка включенных протоколов в SQL Server".

  8. Если ваша цель — подключиться с помощью учетной записи, отличной от учетной записи администратора, начните с подключения от имени администратора. Затем повторите попытку подключения к входу проверки подлинности Windows или входу проверки подлинности SQL Server, который использует клиентское приложение.

Проверка удаленного подключения

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

  1. Используйте SQL Server Management Studio на клиентском компьютере и попробуйте подключиться с помощью IP-адреса и номера TCP-порта в формате <IP address>,<port number>. Например, 192.168.1.101,1433. Если это подключение завершается ошибкой, возможно, возникает одна из следующих проблем:
  2. После подключения с помощью IP-адреса и номера порта просмотрите следующие сценарии:
    • При подключении к экземпляру по умолчанию, прослушиваемому на любом порту, отличном от 1433, необходимо использовать номер порта в строке подключения или создать псевдоним на клиентском компьютере для подключения к экземпляру по умолчанию. Служба браузера SQL Server не может перечислять порты экземпляра по умолчанию.
    • При подключении к именованному экземпляру попробуйте подключиться к экземпляру в формате имени экземпляра и IP-адреса с обратной косой чертой. (Например, 192.168.1.101\<instance name>). Если это действие не срабатывает, это означает, что номер порта не возвращается клиенту. Проблема связана со службой обозревателя SQL Server, которая предоставляет клиенту номер порта именованного экземпляра. Ниже приведены решения.
      • Запустите службу обозревателя SQL Server. Инструкции по запуску браузера SQL Server в диспетчере конфигурации SQL Server.
      • Служба обозревателя SQL Server блокируется брандмауэром. Откройте UDP-порт 1434 в брандмауэре. Вернитесь к разделу "Проверка конфигурации брандмауэра". Убедитесь, что вы открываете UDP-порт, а не TCP-порт.
      • Сведения о UDP-порте 1434 блокируются маршрутизатором. UDP-соединение не осуществляется через маршрутизаторы и предотвращает заполнение сети трафиком с низким приоритетом. Вы можете настроить маршрутизатор для переадресации трафика UDP или указать номер порта при каждом подключении.
      • Если клиентский компьютер использует Windows 7, Windows Server 2008 или более новую операционную систему, клиентская операционная система может удалить трафик UDP, так как ответ с сервера возвращается из другого IP-адреса, отличного от того, что было запрошено. Это функция безопасности, блокирующая "свободное сопоставление источников". Дополнительные сведения см. в разделе "Устранение неполадок с несколькими IP-адресами сервера: истекло время ожидания". Эта статья относится к SQL Server 2008 R2, но принципы по-прежнему применяются. Клиент может настроить правильный IP-адрес или указать номер порта при каждом подключении.
  3. После подключения по IP-адресу (или IP-адресу и имени экземпляра для именованного экземпляра) попробуйте подключиться с помощью имени компьютера (или имени компьютера и имени экземпляра для именованного экземпляра). Поместите tcp: перед именем компьютера для принудительного подключения по протоколу TCP/IP. Например, для экземпляра по умолчанию на компьютере с именем ACCNT27 используйте tcp:ACCNT27. Для именованного экземпляра с именем PAYROLL на этом компьютере используйте tcp:ACCNT27\PAYROLL. Если вы можете подключиться по IP-адресу, но не по имени компьютера, у вас возникла проблема с разрешением имен. Вернитесь к разделу Проверка подключения TCP/IP.
  4. После установления подключения с помощью имени компьютера с принудительным использованием TCP попробуйте подключиться с помощью имени компьютера без принудительного использования TCP. Например, для экземпляра по умолчанию используйте имя компьютера, например ACCNT27. Для именованного экземпляра используйте имя компьютера и имя экземпляра, например ACCNT27\PAYROLL. Если вы можете подключиться при принудительном подключении TCP, но не без принудительного применения TCP, клиент, вероятно, использует другой протокол, например именованные каналы. Чтобы устранить эту проблему, выполните следующие действия.
    1. На клиентском компьютере используйте диспетчер конфигурации SQL Server. В левой области разверните конфигурацию версии< собственного клиента >SQL, а затем выберите клиентские протоколы.
    2. В области слева убедитесь, что включен протокол TCP/IP. Если протокол TCP/IP отключен, щелкните правой кнопкой мыши TCP/IP и выберите Включить.
    3. Убедитесь, что порядок протокола для TCP/IP ниже, чем у протоколов именованных каналов (или VIA в более ранних версиях). Как правило, следует оставить общую память в качестве порядка 1, а TCP/IP — в качестве порядка 2. Общая память используется только в том случае, если клиент и SQL Server работают на одном компьютере. Все включенные протоколы реализуются по порядку, пока один из них не будет реализован успешно, но общая память пропускается, если подключение не установлено на одном компьютере.

Проверка разрешений пользователя

Если вы используете именованные каналы для подключения, проверьте, имеет ли пользователь разрешения на вход в Windows. Дополнительные сведения см. в разделе "Устранение неполадок с подключением именованных каналов".