Je viens de passer des heures à essayer de réaliser une tâche simple. J'avais le code python que j'avais l'habitude de faire dans Windows et il accédait à une base de données MS SQL sur un serveur Windows 2008. J'ai configuré un serveur Ubuntu et je veux exécuter ce script sur ce serveur. après avoir installé pyodbc, freetds et d'autres paquets, je ne peux toujours pas me connecter à la base de données. La chaîne de connexion Windows que j'utilisais était la suivante:
connectionString='DRIVER={SQL Server};SERVER=IP;DATABASE=Market;UID=usr;PWD=psw
après des recherches approfondies, je me suis retrouvé avec trois fichiers de connexion odbc.ini, odbcinst.ini et freetds.conf, qui ressemblent à ceci:
odbc.ini:
[sqlserverdatasource] Pilote = FreeTDS Description = ODBC connexion via FreeTDS Trace = No Nom du serveur = sqlserver Database = Market;
odbcinst.ini
[FreeTDS] Description = Pilote TDS (Sybase/MS SQL) Pilote = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so CPTout = CPReuse = FileUsage = 1
freetds.conf
[sqlserver] Host = 10.23.11.10; port = 1433; tds version = 5.0
Maintenant, j'ai essayé de tester la connexion avec ce qui suit
tsql -S sqlserver
mais j'obtiens l'erreur suivante
Erreur 20017 (gravité 9): EOF inattendu de l'erreur de système d'exploitation du serveur 115, "Opération en cours" Erreur 2000 (gravité 9): échec de la connexion à Adaptive Server.
Je pensais que cela prendrait quelques minutes pour que tout se passe bien, mais j'ai perdu de nombreuses heures. Toute aide est très appréciée. Merci.
Si vous essayez de vous connecter à SQL Server à partir de votre machine Linux, je vous recommande vivement de suivre ce lien https://Azure.Microsoft.com/en-us/documentation/articles/sql-database-develop-python- simple-ubuntu-linux /
Ceci utilise un autre pilote pymssql python qui utilise FreeTDS pour se connecter à SQL Server. Faites-moi savoir si cela aide.
Meilleur,
Rencontrer
Récemment, nous avons développé et testé nos pilotes SQL Server ODBC avec pyODBC 3.0.7 sur Python 3.3 et la connexion a réussi. Tout a bien fonctionné.
Essayez de télécharger le dernier pilote pyODBC https://github.com/mkleehammer/pyodbc et ceci pilote SQL Server ODBC
Il existe un exemple de chaîne de connexion dans la documentation. Vous pouvez l'utiliser.
Je me connecte régulièrement aux bases de données en utilisant python. Ma chaîne de connexion est la suivante:
ConnectionString = 'DSN = MyDSN'
DSN signifie Data source Name
et ses détails sont stockés dans le fichier odbc.ini
sous la forme que vous utilisez:
[MyDSN]
Pilote = FreeTDS
Description = ODBC connexion via FreeTDS
Trace = Non
Nom du serveur = sqlserver
Base de données = marché
USER = DBuser
Mot de passe = yourpwd