Esto es un poco raro. He instalado dos instancias de SQL Server 2016. Una está en mi computadora portátil (Windows 10) y la otra en un VPS (Windows Server 2012), en mi servidor de desarrollo en la habitación de al lado. En el mismo servidor hay otro VPS con Centos 7 con odbc que está intentando conectarse a ambas instancias de SQL.
La conexión a la de mi computadora portátil es exitosa; sqlcmd -S .. -P -Q "query"
por otro lado, la conexión al servidor de Windows devuelve un error.
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Login timeout expired.
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : TCP Provider: Error code 0x102.
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online..
Cuando intento conectarme al servidor de Windows usando el cliente SQL de mi computadora portátil, todo funciona sin problemas, sin tiempos de espera ni nada.
He desactivado todos los firewalls (tanto máquinas con Windows/vps como portátiles/). Me pregunto qué podría estar bloqueando las conexiones de Linux en Windows Server 2012, haciendo que se agoten el tiempo de espera y, al mismo tiempo, permitiendo las de Windows...
Respuesta1
Me parece que no tienes conexiones TCP habilitadas a tu servidor SQL: https://technet.microsoft.com/en-us/library/hh231672(v=sql.110).aspx La configuración predeterminada es no permitir conexiones TCP IIRC.
Si es SQL Express, es posible que también necesites habilitar conexiones remotas: http://blog.citrix24.com/configure-sql-express-to-accept-remote-connections/