99

Вопрос по sql-server-2008, sql-server – Как найти порт для MS SQL Server 2008?

Я использую MS SQL Server 2008 на моей локальной машине. Я знаю, что порт по умолчанию - 1433, но кое-кто не слушает этот порт. SQL является экспресс-выпуском. Я уже пробовал журнал, SQL Server Management Studio, реестр и расширенную хранимую ...

<span>Я обновляю этот вопрос другими ресурсами, на которые смотрел, чтобы у меня были их закладки, и другие тоже могли их использовать.<a href="http://blogs.msdn.com/sql_protocols/archive/2008/11/05/tcp-listening-ports-and-endpoint-ports-behavior.aspx">blogs.msdn.com/sql_protocols/archive/2008/11/05/...</a>  <a href="http://decipherinfosys.wordpress.com/2008/01/02/finding-the-port-number-for-a-particular-sql-server-instance/">decipherinfosys.wordpress.com/2008/01/02/...</a>  <a href="http://dumbledad.wordpress.com/2008/07/09/getting-processing-working-with-sql-server-2008/">dumbledad.wordpress.com/2008/07/09/...</a></span>

от royalghost

<span>Я использую TCP View, чтобы увидеть порт, на котором он работает. Я удивлен тем, что сервер использует динамический порт вместо 1433 даже после установки его в качестве экземпляра по умолчанию. Я также удалил экспресс-выпуск и установил полную версию, после чего только я вижу процесс как sqlservr.exe: 5272. И я предполагаю, что он прослушивает порт 5272.</span>

от royalghost

12 ответов

46

Вот 5 методов, которые я нашел:

  • Способ 1. Диспетчер конфигурации SQL Server
  • Способ 2: Просмотр событий Windows
  • Способ 3: журналы ошибок SQL Server
  • Способ 4: sys.dm_exec_connections DMV
  • Способ 5: чтение реестра с использованием xp_instance_regread

Способ 4: sys.dm_exec_connections DMV

Я думаю, что это почти самый простой способ ...

DMV возвращают состояние сервера, которое можно использовать для мониторинга экземпляра SQL Server. Мы можем использоватьsys.dm_exec_connections DMV для определения номера порта, который прослушивает экземпляр SQL Server, используя приведенный ниже код T-SQL:

SELECT local_tcp_port
FROM   sys.dm_exec_connections
WHERE  session_id = @@SPID
GO

Result Set:
local_tcp_port
61499

(1 row(s) affected)

Способ 1. Диспетчер конфигурации SQL Server

Шаг 1. Нажмите Пуск> Все программы> Microsoft SQL Server 2012> Инструменты настройки> Диспетчер конфигурации SQL Server

Шаг 2. Перейдите в Диспетчер конфигурации SQL Server> Конфигурация сети SQL Server> Протоколы для

Шаг 3. Щелкните правой кнопкой мыши на TCP / IP и выберите Свойства

Шаг 4. В диалоговом окне свойств TCP / IP перейдите на вкладку IP-адреса и прокрутите вниз до группы IPAll.

Если SQL Server настроен для работы на статическом порту, он будет доступен в текстовом поле «Порт TCP», а если он настроен на динамический порт, то текущий порт будет доступен в текстовом поле «Динамические порты TCP». Здесь мой экземпляр прослушивает номер порта 61499.

Другие методы вы можете найти здесь:http://sqlandme.com/2013/05/01/sql-server-finding-tcp-port-number-sql-instance-is-listening-on/

11

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

Server is listening on [ 192.128.3.2  1433].
4

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

Используя Nmap (http://nmap.org/zenmap/) сделатьИнтенсивное сканирование TCP " даст вам такие результаты длявсе экземпляры на сервере:

[10.0.0.1\DATABASE]    
Instance name: DATABASE
Version: Microsoft SQL Server 2008 R2 RTM    
Product: Microsoft SQL Server 2008 R2    
Service pack level: RTM    
TCP port: 49843    
Named pipe: \\10.0.0.1\pipe\MSSQL$DATABASE\sql\query

Важная заметка: Чтобы протестировать с помощью анализатора запросов или MS SQL Server Management Studio, вы должны сформировать имя и порт сервера иначе, чем вы обычно подключаетесь к порту, например, через HTTP,используя запятую вместо двоеточия.

  • Имя сервера Management Studio:10.0.0.1,49843
  • Строка подключения:Data Source=10.0.0.1,49843

тем не мение

  • Строка соединения JDBC:jdbc:microsoft:sqlserver://10.0.0.1:49843;DatabaseName=DATABASE
8

Попробуйте это (требуется доступ кsys.dm_exec_connections):

SELECT DISTINCT 
    local_tcp_port 
FROM sys.dm_exec_connections 
WHERE local_tcp_port IS NOT NULL
132

Нажмите наStart кнопка в винде. Идти кAll Programs -> Microsoft SQL Server 2008 -> Configuration Tools -> SQL Server Configuration Manager

Нажмите наSQL Native Client 10.0 Configuration -> Client Protocols -> TCP/IP двойной щелчок (щелчок правой кнопкой мыши)Properties ) наTCP/IP

Ты найдешь .Default Port 1433

В зависимости от соединения номер порта может отличаться.

6

USE master
GO
xp_readerrorlog 0, 1, N'Server is listening on', 'any', NULL, NULL, N'asc' 
GO

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

1

В дополнение к тому, что перечислено выше, мне пришлось включить порты TCP и UDP для удаленного подключения SQLExpress. Поскольку у меня есть три разных экземпляра на моей машине для разработки, я включаю1430-1435 для TCP и UDP.

48

Вы также можете посмотреть с

netstat -abn

Это дает порты с соответствующим приложением, которое держит их открытыми.

редактировать: или жеTCPView.

5

Вы можете использовать эти две команды:tasklist а такжеnetstat -oan

Tasklist.exe какtaskmgr.exe но в текстовом режиме.

Сtasklist.exe или жеtaskmgr.exe Вы можете получить PIDsqlservr.exe

Сnetstat -oan, он показывает PID подключения, и вы можете отфильтровать его.

Пример:

C:\>tasklist | find /i "sqlservr.exe"
sqlservr.exe  1184 Services    0 3.181.800 KB

C:\>netstat -oan | find /i "1184"
TCP  0.0.0.0:1280  0.0.0.0:0  LISTENING  1184

В этом примере порт SQLServer - 1280

Извлеченный из:http://www.sysadmit.com/2016/03/mssql-ver-puerto-de-una-instancia.html

1

это работает для SQL Server 2005 - 2012. Найдите событие id = 26022 в журнале ошибок под приложениями. Это покажет номер порта сервера sql и IP-адреса, к которым разрешен доступ.

8

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

4

Я использую следующий скрипт в SSMS

SELECT
     s.host_name
    ,c.local_net_address
    ,c.local_tcp_port
    ,s.login_name
    ,s.program_name
    ,c.session_id
    ,c.connect_time
    ,c.net_transport
    ,c.protocol_type
    ,c.encrypt_option
    ,c.client_net_address
    ,c.client_tcp_port
    ,s.client_interface_name
    ,s.host_process_id
    ,c.num_reads as num_reads_connection
    ,c.num_writes as num_writes_connection
    ,s.cpu_time
    ,s.reads as num_reads_sessions
    ,s.logical_reads as num_logical_reads_sessions
    ,s.writes as num_writes_sessions
    ,c.most_recent_sql_handle
FROM sys.dm_exec_connections AS c
INNER JOIN sys.dm_exec_sessions AS s
    ON c.session_id = s.session_id

--filter port number
--WHERE c.local_tcp_port <> 1433

Похожие вопросы