Python - 无法打开 lib 'libtdsodbc.so':找不到文件

问题描述 投票:0回答:2

非常感谢有关此问题的任何帮助。

目标:使用 FreeTDS 将 Django 连接到 MSSQL 服务器。我使用的是 Debian x64 盒子。

问题:尝试建立连接时,我收到以下信息。

('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'libtdsodbc.so' : file not found (0) (SQLDriverConnect)")

我的

/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

文件 do 存在并且具有 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
python sql linux pyodbc freetds
2个回答
3
投票

如果其他人遇到这个障碍,请查看此博客文章。

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

0
投票

当 SQLServer 从 2014 年升级到 2022 年时,我刚刚遇到了这个问题(在我不知情的情况下),所以将其留在这里,以防它对某人有帮助。错误是:

"Can't open lib '/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so' : file not found (0)" 

解决方案是安装最新的驱动程序https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver16&tabs=alpine18 -安装%2Calpine17-安装%2Cdebian8-安装%2Credhat7-13-安装%2Crhel7-离线

并更新引用它们的ini文件

© www.soinside.com 2019 - 2024. All rights reserved.