Я столкнулся с этим, потому что у меня просто возникли проблемы с созданием удаленного соединения и я не мог понять, почему настройка порта 1433 в брандмауэре не выполняет эту работу. Теперь у меня есть полная картина, поэтому я подумал, что должен поделиться.
Прежде всего необходимо включить «TCP/IP» с помощью диспетчера конфигурации SQL Server в разделе «Протоколы для SQLEXPRESS!».
Когда используется именованный экземпляр (в данном случае SQLExpress), он будет прослушивать динамический порт. Чтобы найти этот динамический порт, у вас есть несколько вариантов; назвать несколько:
проверка ERRORLOG
из SQL Server, расположенный в '{MS SQL Server Path}\{MS SQL Server instance name}\MSSQL\Log'
(внутри вы найдете строку, подобную этой: "2013-07-25 10:30:36.83 Server Server is listening on [ 'any' <ipv4> 51118]"
-> так 51118 является динамическим портом в этом случае.
проверка реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{MSSQL instance name}\MSSQLServer\SuperSocketNetLib\Tcp\IPAll
, для моего дела TcpDynamicPorts=51118
.
Edit: {MSSQL instance name}
что-то вроде: MSSQL10_50.SQLEXPRESS
, не только SQLEXPRESS
Конечно, позволяя этот TCP-порт в брандмауэре и создание удаленного соединения, передавая в: "x.x.x.x,51118"
(где хххх является сервером ip) уже решает его в этот момент.
Но тогда я хотел подключиться удаленно, передав имя экземпляра (например: x.x.x.x\SQLExpress
). Это когда запускается служба SQL Browser. Это единица, которая разрешает имя экземпляра в порт 51118. Служба SQL Browser прослушивает порт UDP 1434 (стандартный & статический), поэтому мне пришлось разрешить это также в брандмауэре сервера.
Чтобы немного увеличить фактический ответ: если кому-то не нравятся динамические порты и требуется статический порт для его экземпляра SQL Server, следует попробовать это link.
Я обновляю вопрос с другими ресурсами я посмотрел на так, что у меня есть booksmarks из они и другие могут использовать их также. http://blogs.msdn.com/sql_protocols/archive/2008/11/05/tcp-listening-ports-and-endpoint-ports-behavior.aspx http://decipherinfosys.wordpress.com/2008/01/02/find-the-port-number-for-a-specific-sql-server-instance/ http://dumbledad.wordpress.com/2008/07/09/getting-processing-working-with -sql-server-2008/ – royalGhost
Я использую вид TCP, чтобы увидеть порт, на котором он запущен. Я с удивлением вижу, что сервер принимает динамический порт вместо 1433 даже после установки его в качестве экземпляра по умолчанию. Я также не установил экспресс-версию и установил полную версию, после чего только я вижу процесс как sqlservr.exe: 5272. И мое предположение заключается в том, что он прослушивает порт 5272. – royalGhost