J'essaie de me connecter à un serveur SQL à l'aide de Pypyodbc sur Mac et j'obtiens l'erreur suivante:
pypyodbc.DatabaseError: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'FreeTDS' : file not found")
J'ai installé freeTDS et unixodbc
brew install unixodbc
brew install freetds
et voici ma chaîne de connexion avec des données factices:
connection_String = "Driver=FreeTDS;Server=123.12.12.12;tds_version=7.2;Database=db_db;Uid=username:pwd=password:port=1433"
Vérifiez votre /etc/odbcinst.ini ou il pourrait être sous /etc/unixODBC/odbcinst.ini
Dans votre chaîne de connexion, vous avez quelque chose comme ceci "DRIVER = FreeTDS", il doit y avoir une entrée dans ce fichier comme la suivante. Vous devrez peut-être modifier l'emplacement de votre pilote.
[FreeTDS]
Description = FreeTDS unixODBC Driver
Driver = /usr/lib64/libtdsodbc.so.0
Setup = /usr/lib64/libtdsodbc.so.0
UsageCount = 1
Tout d'abord, vous pouvez utiliser pymssql qui ne nécessite pas de configurer unixODBC, ce qui est le problème ici.
Pour configurer unixODBC avec FreeTDS, procédez comme suit: http://www.unixodbc.org/doc/FreeTDS.html
Il existe un outil fourni avec FreeTDS, tsql. Utilisez-le pour tester votre chaîne de connexion. C'est un outil très nu et quelque chose de douloureux. : - /
Enfin, il y a une question similaire avec d'autres problèmes dans StackOverflow: Comment configurer pyodbc pour accepter correctement les chaînes de SQL Server en utilisant freeTDS et unixODBC?