はい私はこれを読んでMS SQL Server 2008のポートを見つける方法は?
運が悪い。
telnet 1433
接続に失敗したため、他のポートを指定する必要があります。
使ってみた
netstat -abn
しかし、このリストにsqlservr.exeなどは表示されません。
なぜそのポートを見つけるのがそれほど難しいのですか?:/
はい私はこれを読んでMS SQL Server 2008のポートを見つける方法は?
運が悪い。
telnet 1433
接続に失敗したため、他のポートを指定する必要があります。
使ってみた
netstat -abn
しかし、このリストにsqlservr.exeなどは表示されません。
なぜそのポートを見つけるのがそれほど難しいのですか?:/
回答:
これを試して:
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/
とてもシンプル。taskmanagerからのsqlsrvr.exe PIDをメモしてから、次のコマンドを実行します。
netstat -ano | findstr *PID*
SQLサーバー(ポートを含む)のTCPおよびUDP接続が表示されます。標準は、TCPの場合は1433、UDPの場合は1434です。
例:
これは私のために働くものです:
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/en-us/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サーバーのインストールをホストする)でこのPowerShellスクリプトを実行してください。つまり、最初にSQLサーバー/ボックス/ VMにRDPを実行してから、このコードを実行する必要があります。
HTH