2017-07-21 3 views
0

J'ai suivi these instructions (en échangeant les variables fictives si nécessaire) et je ne peux pas passer l'étape où vous exécutez isql. Le pilote FreeTDS semble fonctionner (mais au lieu d'obtenir une CLI, il commence juste compter vers le haut), mais je reçois la même erreur chaque fois à l'étape isql:Impossible de se connecter à SQL Server sur Mac

[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified 
[ISQL]ERROR: Could not SQLConnect 

Un collègue de travail a suivi les instructions et cela a fonctionné. J'essaie cela sur mon ordinateur personnel, et j'ai été assez cavalier avec mes installations (en utilisant Anaconda et Homebrew), est-il possible que ce soit un problème d'installation et que quelque chose ne soit pas lié?

Ma plus forte intuition est que isql est ne pas lier MSSQL_DSN à la config

+0

Si vous avez testé avec 'tsql' et que le compteur commence à compter vers le haut, cela signifie qu'il ne se connecte pas. Tout d'abord, assurez-vous que vous pouvez vous connecter: 'telnet your.server.com 1433' depuis le terminal. Si cela se connecte, vous êtes bon. Sinon, vous avez probablement un blocage de pare-feu. Ensuite, essayez 'tsql -C' et assurez-vous que vous utilisez le bon fichier' freetds.conf'. Vérifiez également la version de FreeTDS que vous utilisez et assurez-vous que la version 'tds 'que vous utilisez est compatible avec la version de FreeTDS. Si vous utilisez 0.91 (inclus avec de nombreuses distributions), essayez '7.1' ou' 7.2' pour 'tds version'. – FlipperPA

Répondre

0

Vous pouvez essayer les étapes suivantes:

Suivez les instructions données dans https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-Mac-OSX

Maintenant, il y a quelques étapes supplémentaires et hacks si isql/osql ne fonctionne pas (en supposant que tsql fonctionne correctement). Chacune des étapes répertoriées ci-dessous est le résultat du débogage du message d'erreur osql.

À une ou plusieurs étapes, vous pouvez avoir besoin de privilèges root supplémentaires. Accordez-les si nécessaire et révoquez une fois la connectivité pyodbc atteinte.

  1. Les fichiers ODBC.INI et odbcinst.ini devraient également être présents dans/Users // etc, en dehors de la doc officielle emplacement spécifié.

  2. Il devrait également y avoir une copie de odbcinst.ini dans/(répertoire racine).

  3. Le fichier freetds.conf doit être présent dans le répertoire/usr/local/etc.

  4. Si vous utilisez SQL Server 2014 et versions ultérieures, la version tds doit être définie sur 7.4. Ne définissez pas la version tds sur 8 car il s'agit juste d'un alias pour la version 7.1.

  5. Vérifiez si le fichier /usr/local/lib/libtdsodbc.so a des privilèges d'exécution. Sinon, accordez 766/777 (dans le pire des cas) les privilèges via chmod. Cette étape est cruciale pour exécuter osql/isql et à son tour la connexion pyodbc à partir de python.

Après ces étapes, revérifions une fois le contenu de odbc.ini, odbcinst.ini et freetds.conf et confirment qu'ils sont, conformément à la documentation (https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-Mac-OSX)

Run isql/osql.

Si tout fonctionne bien maintenant, vous êtes tous configuré pour vous connecter à SQLServer à partir de python. L'extrait suivant montre le processus de connexion de base.

connexion import pyodbc

= pyodbc.connect ('DSN = MYMSSQL; UID =; PWD =) curseur = connection.cursor() résultat = cursor.execute ("select @@ VERSION"). fetchall() impression (résultat) cursor.close() connexion.close()