Ho avuto lo stesso problema anche su Ubuntu 14 dopo aver seguito il tutorial Microsoft per SQL Server Linux ODBC Driver.
Il file esiste e dopo aver eseguito un ldd, ha mostrato che mancavano delle dipendenze:
/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:versione GLIBCXX_3.4.20' not found (required by /opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0)
/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version
CXXABI_1.3.8' non trovato (richiesto da
dopo aver cercato per un po' l'ho trovato perché il repository di Ubuntu non aveva GLIBCXX nella versione 3.4.20, era alla 3.4.19.
Ho quindi aggiunto un repository a Ubuntu, l'ho aggiornato e forzato ad aggiornare libstdc++6
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libstdc++6
Problema risolto, testato con isql:
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
Dopodiché ho provato a testare usando pdo_odbc (PHP), mi ha dato lo stesso errore di driver non trovato. Per risolvere questo problema ho dovuto creare un collegamento simbolico per correggere libodbcinst.so.2
:
sudo ln -s /usr/lib64/libodbcinst.so.2 /lib/x86_64-linux-gnu/libodbcinst.so.2
Ho trovato una risposta che funziona per me qui. Questo è per Python 2.7 (quindi potrebbe non funzionare per coloro che cercano una soluzione per Python 3.x).
La soluzione suggerita è aggiornare libgcc:4.8.5-2 --> 5.2.0-0
Per aggiornare libgcc, usa questo comando
conda update libgcc
Ho avuto lo stesso problema 'file non trovato (0) (SQLDriverConnect)' su MAC OS con il seguente codice
cnxn =pyodbc.connect('DRIVER={Driver ODBC 13 per SQL Server};SERVER=myServerIP,1433;DATABASE=myDBName;UID=sa;PWD=dbPassword')
dopo aver cercato su Google per due giorni, non riesco a risolvere il problema nemmeno modificando freetds.conf, odbcinst.ini e odbc.ini
infine, ho trovato la soluzione sostituendo DRIVER valore
cnxn =pyodbc.connect('DRIVER={/usr/local/lib/libmsodbcsql.13.dylib};SERVER=myServerIP,1433;DATABASE=myDBName;UID=sa;PWD=dbPassword')
Il mio ambiente di sviluppo
- MAC OS El Capitan
- python 3.6.1 in Anaconda