Protocolos go-mssqldb

El go-mssqldb controlador soporta múltiples protocolos de transporte para conectarse a SQL Server. Este artículo describe cada protocolo y cómo configurarlo.

Parámetro de protocolo

Establezca el protocol parámetro de conexión para especificar el transporte:

Value Protocol Description
tcp TCP/IP Protocolo por defecto. Funciona en todas las plataformas.
np Canalizaciones con nombre Comunicación entre procesos de Windows. Funciona en Windows y Linux (con SMB).
lpc Memoria compartida Conexiones locales solo en Windows.
admin DAC (TCP) Conexión dedicada al administrador. Se conecta al punto final del DAC.

Si no especificas un protocol, el controlador usa TCP.

TCP/IP

TCP es el protocolo por defecto y el más común. Especifica el host y el puerto en la cadena de conexión:

sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025

O explícitamente:

sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025&protocol=tcp

Formato de prefijo del servidor

También puedes especificar el protocolo como prefijo en el nombre del servidor (formatos ADO/ODBC):

server=tcp:<server>,1433;user id=<user>;password=<password>;database=AdventureWorks2025

Note

En el formato de prefijo ADO, el puerto está separado por una coma, no por dos puntos.

Canalizaciones con nombre

Las tuberías con nombre usan el np protocolo. Especifica el camino de la tubería con el pipe parámetro:

sqlserver://<user>:<password>@<server>?database=AdventureWorks2025&protocol=np&pipe=\sql\query

O usar el formato del prefijo del servidor:

server=np:<server>\myinstance;user id=<user>;password=<password>;database=AdventureWorks2025

El nombre predeterminado de la tubería corresponde \sql\query a la instancia predeterminada.

Las versiones actuales de controladores soportan conexiones de tubería con nombre en Windows para Arm64, además de Windows y Linux, para entornos x86-64 que exponen la tubería a través de SMB.

Nombres de tuberías de instancia nombradas

Para instancias nombradas, el camino de tubería suele \MSSQL$INSTANCENAME\sql\queryser . Si conoces el camino de la tubería, especifícalo directamente. De lo contrario, omite el pipe parámetro y deja que SQL Server Browser lo resuelva.

Memoria compartida

La memoria compartida (lpc) proporciona la comunicación más rápida para conexiones locales en Windows. Funciona solo cuando el cliente y el servidor están en la misma máquina:

sqlserver://<user>:<password>@localhost?database=AdventureWorks2025&protocol=lpc

O con el prefijo del servidor:

server=lpc:.\myinstance;user id=<user>;password=<password>;database=AdventureWorks2025

Note

La memoria compartida no está disponible en Linux ni macOS.

Conexión Dedicada para Administradores (DAC)

El DAC proporciona una conexión diagnóstica especial a SQL Server cuando el servidor no responde. El DAC escucha en un puerto dedicado (por defecto: 1434 para instancias predeterminadas):

sqlserver://<user>:<password>@<server>?database=AdventureWorks2025&protocol=admin

O con el prefijo del servidor:

server=admin:<server>;user id=<user>;password=<password>;database=AdventureWorks2025

Warning

SQL Server solo permite una conexión DAC a la vez. Usa el DAC solo para diagnósticos de emergencia.

SQL Server Browser

Cuando el controlador se conecta a una instancia nombrada sin un puerto especificado, contacta con el servicio SQL Server Browser (en el puerto UDP 1434) para resolver la instancia en un puerto TCP. Asegúrate de que el servicio SQL Server Browser esté funcionando en la máquina objetivo.

sqlserver://<user>:<password>@<server>\myinstance?database=AdventureWorks2025

Guía para la selección de protocolos

Escenario Protocolo recomendado
Conexiones remotas tcp
Conexiones locales en Windows lpc (el más rápido) o tcp
Aplicaciones multiplataforma tcp
Diagnóstico de emergencia admin
Aplicaciones heredadas que requieren tuberías con nombre np