2008-09-22 4 views
4

Je peux me connecter à ma base de données SQL Server via sqlcmd à partir d'une fenêtre de commande DOS, mais pas à partir d'une fenêtre Cygwin. A partir de DOS:Connexion à SQL Server à partir de la fenêtre cygwin expire, à partir de l'invite DOS fonctionne

F:\Cygnus>sqlcmd -Q "select 'a test'" -S .\SQLEXPRESS 

un test

(1) lignes affectées

F:\Cygnus> 

=================== =================================

De Cygwin:

$ sqlcmd -Q "select 'a test'" -S .\SQLEXPRESS 

HResult 0x35, Level 16, State 1
Named Pipes Provider: Could not open a connection to SQL Server [53]. Sqlcmd: Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.. Sqlcmd: Error: Microsoft SQL Native Client : Login timeout expired.

Répondre

8

La barre oblique inverse est mangé par le shell bash Cygwin. Essayez doubler:

sqlcmd -Q "select 'a test'" -S .\\SQLEXPRESS 
+0

Duh. C'était ça ... été loin de * nix trop longtemps. Merci! – DCookie

+0

Duh, d'accord. J'ai passé environ 2 heures à essayer de comprendre ce qui ... était faux avec ma nouvelle installation de SQL-SERVER 2008 R2 EXPRESS, et il s'est avéré que mon cerveau fonctionnait simplement en mode de compatibilité MS dans un shell * nix. Doh! Doh! Doh! et DOH! ;-) – corlettk

0

Vous devrez peut-être autoriser les connexions à distance pour cela, et donner le nom complet du serveur i.e. SERVER \ SQLEXPRESS

0

Vous pouvez également transmettre requête/instruction db et recevoir une sortie en shell si vous utilisez l'interrupteur "-Q":

sqlcmd -Q "select * from nice.dbo.TableName ac ORDER BY 1 DESC" -S server_name\\db_name 
Questions connexes