2017-04-23 1 views
1

SQL Server 2016 est installé sur le serveur Windows Server 2012 R2 Le serveur "dev" et le service SQL Server écoutent toutes les adresses IP sur le port 1433. Je peux utiliser sqlcmd pour y connecter à la fois local et un autre serveur Windows distant 2012. la commande est simple: sqlcmd -S dev \ INSTACE -d base de données -U test1 -P test1La connexion sqlcmd a échoué lors de la connexion de SQL Server à Ubuntu

Cependant, lorsque j'essaie de me connecter à partir d'une machine Ubuntu 16.04 en utilisant la même commande, j'ai toujours a obtenu l'erreur suivante:

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 0x2AF9. 
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.. 

Je peux aussi utiliser telnet du serveur Ubuntu pour connecter le port 1433 (telnet dev 1433).

Apprécier pour un conseil ou une aide.

BTW, je n'utilise pas freetds mais OOTB pilote Microsoft ODBC pour Ubuntu 16.04. Un de plus: juste testé avec jdbc et le serveur SQL peut être connecté depuis Ubuntu en utilisant jdbc.

+0

Essayez de spécifier' -S dev' à la place de '-S dev \ INSTACE'. le client se connectera au port 1433 sans avoir à interroger le navigateur SQL Server –

+0

En effet, j'ai essayé -S dev depuis le début mais j'ai oublié de l'inclure dans l'énoncé original du problème.Il ne fonctionne pas non plus.Merci de toute façon – Windchill

+0

, mais avez-vous une source de données ODBC configurée avec le même nom ('dev')? Je ne pense pas que cela devrait importer sans le commutateur' -D' mais si ce DSN configuré avec un hôte différent et SQLCMD essaie de l'utiliser –

Répondre

0

Enfin, ce problème est résolu par: 1) activer TCP/IP sur toutes les adresses IP côté serveur SQL. Il ne suffit pas d'activer "IPAll" mais toutes les adresses TCP/IP, y compris IPV4 et IPV6. 2) il semble que vous ne puissiez pas donner le nom de l'instance. L'instance par défaut peut être connectée dans ce cas. Je n'ai pas compris comment gérer le nom de l'instance autre que l'instance par défaut. 3) Dans Windows, vous n'avez pas besoin de guillemets pour envelopper le mot de passe, mais vous en avez besoin dans Ubuntu. comme: "sqlcmd -S dev \ MyInstance -U sa -P abcd! efg" fonctionne sur Windows mais pas sur Ubuntu. Dans Ubuntu, je dois faire comme: "sqlcmd -S dev -U sa -P 'abcd! Efg'