Isso é um pouco estranho. Instalei duas instâncias do SQL Server 2016. Uma está no meu laptop (windows 10) e a outra está em um VPS (Windows Server 2012), no meu servidor de desenvolvimento na sala ao lado. No mesmo servidor existe outro VPS com Centos 7 com odbc que está tentando se conectar às duas instâncias SQL.
A conexão com o meu laptop foi bem-sucedida, sqlcmd -S .. -P -Q "query"
por outro lado, a conexão com o servidor Windows retorna erro
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..
Quando tento me conectar ao servidor Windows usando o cliente SQL do meu laptop, tudo corre bem, sem tempo limite, sem nada.
Desativei todos os firewalls (máquinas Windows/vps e laptop/). Só estou me perguntando o que do Windows Server 2012 poderia estar bloqueando as conexões do Linux, fazendo-as atingir o tempo limite e, enquanto isso, permitindo as do Windows ..?
Responder1
Parece-me que você não tem conexões TCP habilitadas para o seu servidor SQL: https://technet.microsoft.com/en-us/library/hh231672(v=sql.110).aspx A configuração padrão é não permitir conexões TCP IIRC.
Se for SQL Express, também poderá ser necessário ativar conexões remotas: http://blog.citrix24.com/configure-sql-express-to-accept-remote-connections/