SQL Server запущен, но не прослушивает ни один порт

9

Я недавно установил SQL Server 2012. База данных еще не создана. И я могу открыть Management Studio с помощью sa / пароля. Binn \ sqlservr.exe запускается как служба, и я вижу, что она запущена в списке служб. Однако он не прослушивал порт 1433 или даже не слушал порт по умолчанию, как я проверил, как показано ниже:

tasklist|find /I "sql"

Я получил:

sqlservr.exe                  5668 Services                   0     40,112 K

в котором 5668 я думаю, это PID. А затем, чтобы получить PID = "5668", прослушивает какой порт:

netstat -ano | find /I "5668"

но я ничего не получил, кроме бланка. С другой стороны, после поиска сообщений на этом сайте я дважды проверил конфигурацию своего SQL Server: Пуск-> Все программы -> Microsoft SQL Server 2012 -> Инструменты настройки -> Диспетчер конфигурации SQL Server-> Собственный клиент SQL Server SQL 11.0 Конфигурация -> Клиентские протоколы -> TCP / IP -> Порт по умолчанию 1433. Существует 3 службы: SQL Server (MyInstanceName), агент SQL Server (MyInstanceName) и браузер SQL Server. Последние два остановлены.

Диспетчер конфигурации SQL Server-> Конфигурация сети SQL Server-> Протоколы для MyInstanceName -> TCP / IP отключен по умолчанию, после того как я включил его, перезапустил службу и повторил команду netstat -ano | найти / я "newPIDNum" команда, которую я нашел

TCP    0.0.0.0:52395          0.0.0.0:0              LISTENING  5668(newPIDNum)   

Почему 52395 вместо 1433? И мне не удалось создать DSN с помощью администратора источника данных Windows ODBC, который возвращает мне ошибку: указанный сервер SQL не найден. Любая помощь для меня? Спасибо.


источник
Конфигурация сети SQL Server по умолчанию (для 2008, не могу найти версию 2012, но я не думаю, что это
немного
Спасибо. Действительно хорошая помощь для меня. Есть еще комментарии по поводу моей DSN ящика?
Похоже, вы используете именованный экземпляр (насколько мне известно, только экземпляр по умолчанию слушает 1433). Включаете ли вы имя экземпляра при попытке создать DSN?
Damien_The_Unbeliever
Да, при установке я ввел имя для экземпляра. При создании DSN меня попросили ввести имя DSN (я ввел произвольное имя), SQL-сервер для подключения (это раскрывающийся список выбора, и я попробовал два варианта: оба неудачные, один (локальный), другой <.MyInstanceName>),
Я не видел другого места для включения MyInstanceName. И следующая кнопка указывает мне аутентификацию, а также <Client Configuration>, в которой я могу установить <Server Alias>, <Server Name> и установить флажок <Dynamic define port>.

Ответы:

14

Мой SQL-сервер прослушивал TCPсоединения через порт 1433:

  1. Инструменты настройки / Диспетчер конфигурации SQL Server
  2. щелкните имя экземпляра в конфигурации сети SQL Server
  3. включить TCPсвязь
  4. Щелкните правой кнопкой мыши TCPзапись связи, выберитеProperties
  5. Нажмите вкладку IP-адреса
  6. Включите все IP-адреса, отличные от VMnet, и введите 1433 в поле Port« IPAll ».
  7. Перезапустите SQL Server на вкладке «Службы SQL Server».
  8. Проверьте свою конфигурацию с помощью netstat -an:

    C:\>netstat -an | find "1433"
      TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING
      TCP    [::]:1433              [::]:0                 LISTENING
    
угорь боже
источник
1
Это только одно решение, которое работает для меня. Любые другие руководства даже не говорят о порте IPAII. Спасибо человек, ты сделал мой день
QkiZ
13

Почему 52395 вместо 1433

Именованные экземпляры прослушивают динамические порты. Это работа службы браузера сервера Sql для информирования клиентов о фактическом порте. Браузер Sql прослушивает UDP 1434 и отвечает на вопросы вида «что такое порт прослушивания экземпляра« foo »?». Служба Sql Server Browser требуется для протоколов TCP и именованных каналов. Клиенты используют браузер SQL Server прозрачно, не требуя специальной настройки. Просто указав имя экземпляра в строке подключения (или DSN ODBC), клиентская библиотека узнает, что сначала она должна связаться со службой браузера SQL Server.

Есть 3 службы, SQL Server (MyInstanceName), агент SQL Server (MyInstanceName) и браузер SQL Server. Последние два остановлены

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

В качестве примечания, часто используемой альтернативной конфигурацией является использование статических портов для именованного экземпляра и указание порта в строке подключения ( tcp:<hostname>:<port>). Он имеет преимущество, заключающееся в исключении браузера SQL Server из уравнения, но требует тщательного обслуживания клиентов. Изменение порта прослушивания требует согласованных изменений на всех клиентах, на всех машинах, во всех местах, как правило, это большая боль. Я рекомендую вместо этого взять зависимость от браузера SQL Server.

Ремус Русану
источник
1

Межсетевые экраны - 3 из них

Люди, которые не знакомы с более свежими версиями Windows (мне не нравится ни одна после XP, и я пытался установить SQL Server на Windows 10):

  • Ваш брандмауэр должен быть отключен в 3 отдельных местах (то есть для 3 разных профилей).

Если вы сделаете это только для первого, который вы видите (Профиль домена), вам все равно будет интересно, почему вы можете подключиться к порту 80 (IIS), но не к 1433 (SQL Server).

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

Шридхар Сарнобат
источник
1

Я пока не могу комментировать (репутация низкая, так как не очень активная): Но отключение брандмауэра Windows, как упоминалось выше, является худшим из возможных ответов. Правильно было бы: Создайте правила брандмауэра во «входящем», чтобы разрешить связь порта 1433 с теми локальными IP-адресами (или всеми), которые вам нужны. И я также рекомендую установить, какие удаленные IP-адреса могут подключаться к этому SQL Server.

JouMxyzptlk
источник