Назад | Перейти на главную страницу

Доступ к SQL с именем ПК, а не IP

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

A network-related or instance-specific error occurred while establishing a connection to SQL Server. ... (Microsoft Server, Error: 10060)

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

Изменить: пинг имени действительно разрешает правильный IP. Проверка полного доменного имени также работает правильно.

[оригинал] DNS-имя, которое вы используете для подключения к серверу, возможно, не соответствует IP-адресу, на котором размещен экземпляр. Вы можете проверить это с помощью nslookup для разрешения имени и убедиться, что это разрешается в IP-адрес экземпляра, который вы настроили на сервере SQL.

Помимо этого, как упоминал tas @mrdenny, на пути может быть сетевой брандмауэр или хост [/ original]

Edit1: видел бит о пинге по имени ... Действительно ли имя, которое вы пинговаете, разрешается серверу, на котором размещен экземпляр SQL?

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

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

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

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

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

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

Откройте командную строку и напишите следующее:

notepad C:\Windows\System32\drivers\etc\hosts

Это откроет файл с именем Hosts с помощью Блокнота.

Добавьте одну запись, как показано ниже:

 [Machine_IP] [Press Tab] [Full Machine Name]

Например. Если мой IP-адрес 10.10.3.222, а полное доменное имя моей машины: WinServer-L2Lab.contoso.com

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost
10.10.3.222      WinServer-L2Lab.contoso.com     

Сохраните файл. И попробуй подключиться.

Это похоже на проблему с разрешением имен.

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

Попробуйте выполнить эхо-запрос FQDN (servername.domain.comне servername только) SQL-сервера. Это работает? Пингует ли он на самом деле IP-адрес сервера или другой?

Затем попробуйте пропинговать имя сервера без суффикса домена (таким образом, servername только). Это работает? Пингует ли он IP-адрес сервера? Он автоматически разрешается в полное доменное имя сервера (servername.domain.com) или остается так, как вы его просили (servername)?

Здесь есть несколько возможных проблем: либо имя отображается на неправильный сервер в DNS, либо DNS не работает, и NetBIOS используется для разрешения имени (и это также может отображаться на неправильный сервер); приведенные выше тесты должны прояснить это. Пожалуйста, попробуйте их, а затем опубликуйте свои результаты.