1
votes

pyodbc.OperationalError: ('HYT00', u '[HYT00] [unixODBC] [Microsoft] [ODBC Driver 13 for SQL Server] Délai de connexion expiré (0) (SQLDriverConnect)')

En utilisant SQL Server Management Studio (SSMS) Express, je peux trouver la base de données et me connecter sans problème.

Mais lorsque j'utilise pyodbc pour me connecter au même serveur en utilisant:

pyodbc.OperationalError: ('HYT00', u'[HYT00] [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')


0 commentaires

5 Réponses :


1
votes

Les pilotes ODBC SQL Server de Microsoft pour Linux ne parviennent pas à résoudre les noms d'instance. Vous pouvez utiliser le module gratuit sqlserverport pour obtenir le numéro de port correspondant et l'utiliser pour vous connecter.


1 commentaires

+1 pour ça! Il va sans dire que TCP / IP doit être activé pour l'instance en question. Le module sqlserverport planterait avec une erreur de clé pour ' tcp s'il n'est pas activé pour l'instance SQL Server spécifique.



0
votes

Essayez de supprimer l'instance du serveur et définissez-la comme

Serveur = "xxxER"

ou si vous avez un numéro de port, ajoutez-le comme

Server = "xxxER, portNo"


0 commentaires

1
votes

J'ai ce problème et j'ai résolu mon problème en ici . Ajoutez simplement la version.

conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server + ';DATABASE=' + db +';UID=' + user + ';PWD=' + password)

Si cela ne fonctionne pas, changez la version 17 en 13 sinon en 11. Liste des versions d'ODBC.


0 commentaires

0
votes

Vérifiez la configuration de votre réseau mssql, mon problème était là.

Activez le port 1433 pour toutes les adresses IP.

Travaille maintenant avec l'adresse IP et le nom d'hôte.


0 commentaires

0
votes

J'utilise SSH Tunnel avec le port du serveur distant redirigé vers localhost, 1433. Cette connexion pyodbc échoue par intermittence si vous utilisez l'approche:

cnxn = pyodbc.connect('driver={ODBC Driver 17 for SQL Server};Server=localhost, 1433;'...

Le remplacement de localhost par 127.0.0.1 semble fonctionner tout le temps

cnxn = pyodbc.connect ('driver = {ODBC Driver 17 for SQL Server}; Server = 127.0.0.1, 1433; '

Par ailleurs, a également fait la même chose avec Ruby et FreeTDS, et Localhost, 1433 a fonctionné tout le temps. . Il doit y avoir quelque chose dans le paquet pyodbc ou leur approche qui laisse parfois tomber des informations pour que le SGBD sur le serveur ne réponde pas / expire.


0 commentaires