Python-无法打开lib'libtdsodbc.so':找不到文件
技术问答
164 人阅读
|
0 人回复
|
2023-09-12
|
非常感谢您对这个问题的帮助。4 U% ^# g; G6 R# ?5 r3 j3 l# s
目标:使用FreeTDS将Django连接到MSSQL服务器。我在用Debian x64盒子。
$ S) b$ A# @# P问题:当我试图建立连接时,我会得到以下信息。
# S6 ~- B9 S4 p, C('01000',"[01000] [unixODBC][Driver Manager]Can't open lib 'libtdsodbc.so' : file not found (0) (SQLDriverConnect)")我/etc/odbcinst.ini的配置如下
+ G0 ]/ \- g6 ^[FreeTDS]Description = FreeTDSdriver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.sosetup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so这些文件 确实 存在,并且具有777访问权限以进行测试。& {% s) t$ z$ i0 ]# K
连接字符串就像8 }3 p% u- ?- g2 n& }; D0 g9 u
cnxn = pyodbc.connect( DRIVER={FreeTDS};SERVER=' server 'ORT=1443;DATABASE=' database ';UID=' username 'WD=' password) cursor = cnxn.cursor()我的odbcinst -j读取(因为添加了符号链接)
$ ?5 e0 x" g% C5 B5 G- D7 S( ?unixODBC 2.3.1DRIVERS............: /usr/local/etc/odbcinst.iniSYSTEM DATA SOURCES: /usr/local/etc/odbc.iniFILE DATA SOURCES..: /usr/local/etc/ODBCDataSourcesUSER DATA SOURCES..: /root/.odbc.iniSQLULEN Size.......: 8SQLLEN Size........: 8SQLSETPOSIROW Size.: . @! m" D$ d$ u6 T
解决方案:
; H2 t" j: E* F: @7 Q$ R7 O4 m v- m- o 如有其他人遇到此障碍,请查看本博客文章。
& R8 o+ s0 C, v( I$ Dhttps://emacstragic.net/2017/11/06/mssql-odbc-client-on-+ Q; G' ^% E1 E2 Y% L. e; \
debian-9-stretch/7 ~0 u7 ]. u6 ?/ B; i/ D
本质上,我必须针对特定的问题libssl版本可以让它工作。% L* {2 n6 l4 u2 l- ]6 \- V
查看我发现的安装版本:
, ?* Q( C3 \. A$ l) ^! X0 M9 Ildd /opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9.1 | grep 'not found'libcrypto.so.1.0.0 => not foundlibssl.so.1.0.0 => not found手动安装之前的版本解决了这个问题, @% `! s# E# L5 r: |7 [( Y6 A3 w
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 |
|
|
|
|
|