Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
go-mssqldb Драйвер поддерживает несколько транспортных протоколов для подключения к SQL Server. В этой статье описывается каждый протокол и способы его настройки.
Параметр протокола
Задайте protocol параметр соединения так, чтобы задать транспорт:
| Ценность | Протокол | Description |
|---|---|---|
tcp |
TCP/IP | Стандартный протокол. Работает на всех платформах. |
np |
Именованные каналы | Windows межпроцессная коммуникация. Работает на Windows и Linux (с SMB). |
lpc |
Общая память | Локальные подключения доступны только на Windows. |
admin |
DAC (TCP) | Выделенное подключение администратора. Подключается к конечной точке ЦАП. |
Если не указать protocol, драйвер использует TCP.
TCP/IP
TCP — это стандартный и самый распространённый протокол. Укажите хост и порт в строка подключения:
sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025
Или явно:
sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025&protocol=tcp
Формат префикса сервера
Вы также можете указать протокол в качестве префикса на имени сервера (форматы ADO/ODBC):
server=tcp:<server>,1433;user id=<user>;password=<password>;database=AdventureWorks2025
Замечание
В формате префикса ADO порт разделён запятой, а не двоеточием.
Именованные каналы
Именованные трубы используют этот np протокол. Закажите путь к трубе с pipe помощью параметра:
sqlserver://<user>:<password>@<server>?database=AdventureWorks2025&protocol=np&pipe=\sql\query
Или используйте формат префикса сервера:
server=np:<server>\myinstance;user id=<user>;password=<password>;database=AdventureWorks2025
Имя трубы по умолчанию относится \sql\query к стандартному экземпляру.
Текущие версии драйверов поддерживают именованные соединения по трубам в Windows для Arm64, а также в Windows и Linux для сред x86-64, которые открывают трубу через SMB.
Названные имена инстансов
Для именованных экземпляров путь трубы обычно \MSSQL$INSTANCENAME\sql\queryравен . Если вы знаете путь трубы, указывайте его напрямую. В противном случае опустите pipe параметр и пусть браузер SQL Server решит проблему.
Общая память
Общая память (lpc) обеспечивает самую быструю связь для локальных соединений на Windows. Это работает только тогда, когда клиент и сервер находятся на одном компьютере:
sqlserver://<user>:<password>@localhost?database=AdventureWorks2025&protocol=lpc
Или с префиксом сервера:
server=lpc:.\myinstance;user id=<user>;password=<password>;database=AdventureWorks2025
Замечание
Общая память недоступна на Linux или macOS.
Выделенное подключение администратора (DAC)
ЦАП обеспечивает специальное диагностическое соединение с SQL Server, когда сервер не отвечает. ЦАП прослушивается на выделенном порте (по умолчанию: 1434 для стандартных экземпляров):
sqlserver://<user>:<password>@<server>?database=AdventureWorks2025&protocol=admin
Или с префиксом сервера:
server=admin:<server>;user id=<user>;password=<password>;database=AdventureWorks2025
Предупреждение
SQL Server поддерживает только одно подключение к DAC одновременно. Используйте ЦАП только для экстренной диагностики.
браузер SQL Server
Когда драйвер подключается к именованому экземпляру без указанного порта, он связывается с сервисом SQL Server Browser (на UDP порте 1434), чтобы разрешить экземпляр с TCP-портом. Убедитесь, что сервис SQL Server Browser работает на целевой машине.
sqlserver://<user>:<password>@<server>\myinstance?database=AdventureWorks2025
Рекомендации по выбору протокола
| Сценарий | Рекомендуемый протокол |
|---|---|
| Удалённые соединения | tcp |
| Локальные подключения на Windows |
lpc (самый быстрый) или tcp |
| Кроссплатформенные приложения | tcp |
| Экстренная диагностика | admin |
| Устаревшие приложения, требующие именованных труб | np |