是的,我阅读了这篇文章。如何找到MS SQL Server 2008的端口?
没运气。
telnet 1433
返回连接失败,因此我必须指定其他端口。
我尝试使用
netstat -abn
但在此列表中我看不到sqlservr.exe或类似内容。
为什么很难找到那个港口?:/
是的,我阅读了这篇文章。如何找到MS SQL Server 2008的端口?
没运气。
telnet 1433
返回连接失败,因此我必须指定其他端口。
我尝试使用
netstat -abn
但在此列表中我看不到sqlservr.exe或类似内容。
为什么很难找到那个港口?:/
Answers:
试试这个:
USE master
GO
xp_readerrorlog 0, 1, N'Server is listening on'
GO
http://www.mssqltips.com/sqlservertip/2495/identify-sql-server-tcp-ip-port-being-used/
这是对我有用的一个:
SELECT DISTINCT
local_tcp_port
FROM sys.dm_exec_connections
WHERE local_tcp_port IS NOT NULL
如果您已经运行“ netstat -a -b -n”(从提升的命令提示符下),却根本看不到“ sqlservr.exe”,则说明您的SQL Server服务未运行或其TCP / IP网络库处于运行状态禁用的。
运行SQL Server配置管理器(“开始” |“所有程序” |“ Microsoft SQL Server 2008” |“配置工具”)。
导航到SQL Server服务。在右侧窗格中查找SQL Server()。停止了吗?如果是这样,请启动它。
导航到“ SQL Server网络配置”(或SQL Server网络配置(32位),视情况而定),然后导航到“协议”。在右侧窗格中查找“ TCP / IP”。禁用吗?如果是这样,请启用它,然后重新启动SQL Server服务。
请注意,默认实例的实例ID将为MSSQLSERVER。
另请注意,您不必启用TCP / IP网络库即可将客户端连接到服务。客户端还可以通过共享内存网络库(如果客户端在同一台计算机上)或命名管道网络库进行连接。
也许不使用TCP / IP
查看“ SQL Server配置管理器”以查看其使用的协议。
这是我使用的另一个脚本:
-- Find Database Port script by Jim Pierce 09/05/2018
USE [master]
GO
DECLARE @DynamicportNo NVARCHAR(10);
DECLARE @StaticportNo NVARCHAR(10);
DECLARE @ConnectionportNo INT;
-- Look at the port for the current connection
SELECT @ConnectionportNo = [local_tcp_port]
FROM sys.dm_exec_connections
WHERE session_id = @@spid;
-- Look for the port being used in the server's registry
EXEC xp_instance_regread @rootkey = 'HKEY_LOCAL_MACHINE'
,@key =
'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll'
,@value_name = 'TcpDynamicPorts'
,@value = @DynamicportNo OUTPUT
EXEC xp_instance_regread @rootkey = 'HKEY_LOCAL_MACHINE'
,@key =
'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll'
,@value_name = 'TcpPort'
,@value = @StaticportNo OUTPUT
SELECT [PortsUsedByThisConnection] = @ConnectionportNo
,[ServerStaticPortNumber] = @StaticportNo
,[ServerDynamicPortNumber] = @DynamicportNo
GO
尝试一次:-
USE master
DECLARE @portNumber NVARCHAR(10)
EXEC xp_instance_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key =
'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll',
@value_name = 'TcpDynamicPorts',
@value = @portNumber OUTPUT
SELECT [Port Number] = @portNumber
GO
select * from sys.dm_tcp_listener_states
更多内容请参见:https : //docs.microsoft.com/zh-cn/sql/relational-databases/system-dynamic-management-views/sys-dm-tcp-listener-states-transact-sql?view=sql-server -2017年
另一个选择是读取Windows注册表。使用PowerShell,您可以执行以下操作:
#Get SQL instance's Port number using Windows Registry:
$instName = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances[0]
$tcpPort = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$instName\MSSQLServer\SuperSocketNetLib\Tcp").TcpPort
Write-Host The SQL Instance: `"$instName`" is listening on `"$tcpPort`" "TcpPort."
确保在主机服务器(承载SQL实例/ SQL Server安装的主机服务器)中运行此PowerShell脚本,这意味着您必须首先将RDP插入SQL Server / Box / VM,然后运行此代码。
高温超导