非常感谢您对此问题的任何帮助。
目标:使用FreeTDS将Django连接到MSSQL服务器。我正在使用Debian x64盒子。
问题:尝试建立连接时,我得到以下信息。
('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'libtdsodbc.so' : file not found (0) (SQLDriverConnect)")
我/etc/odbcinst.ini的配置如下
/etc/odbcinst.ini
[FreeTDS] Description = FreeTDS driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
这些文件 确实 存在,并且具有777访问权限以进行测试。
连接字符串就像
cnxn = pyodbc.connect( 'DRIVER={FreeTDS};SERVER=' + server + ';PORT=1443;DATABASE=' + database + ';UID=' + username + ';PWD=' + password) cursor = cnxn.cursor()
我的odbcinst -j读取(因为添加了符号链接)
unixODBC 2.3.1 DRIVERS............: /usr/local/etc/odbcinst.ini SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources USER DATA SOURCES..: /root/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8
如果还有其他人遇到此障碍,请查看此博客文章。
https://emacstragic.net/2017/11/06/mssql-odbc-client-on- debian-9-stretch/
本质上,我必须针对特定的libssl版本才能使其工作。
查看我发现的安装版本:
ldd /opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9.1 | grep 'not found' libcrypto.so.1.0.0 => not found libssl.so.1.0.0 => not found
并手动安装以前的版本解决了该问题
wget "http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u7_amd64.deb" sudo apt install ./libssl1.0.0_1.0.1t-1+deb8u7_amd64.deb