sqlcmd 找不到那里的库 (libmsodbcsql-17.0.so.1.1)

sqlcmd not able to find a library (libmsodbcsql-17.0.so.1.1) that is there

提问人:Hack-R 提问时间:3/28/2018 最后编辑:Hack-R 更新时间:2/17/2019 访问量:10478

问:

我在 Ubuntu 16.04 上尝试使用从脚本以编程方式启动的脚本在 VM 的云中执行 SQL 查询。sqlcmd

vm-dev:~$ sudo sqlcmd -S my-db.url.net -d my-db

我一直收到此错误:

Sqlcmd:错误:Microsoft ODBC Driver 17 for SQL Server:无法打开 lib '/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.0.so.1.1':文件 未找到。

但文件显然在那里:

vm-dev:~$ ls /opt/microsoft/msodbcsql17/lib64/

libmsodbcsql-17.0.so.1.1

sql ubuntu sqlcmd

评论


答:

7赞 Diyar 4/1/2018 #1

我有同样的问题,这个解决方案对我有用: 您必须降级 msodbcsql 版本,

  1. apt-get 删除 msodbcsql
  2. apt-cache 麦迪逊 msodbcsql
  3. apt-get 安装 msodbcsql=13.1.9.2-1
  4. apt-cache 麦迪逊 mssql-tools
  5. ACCEPT_EULA=Y apt-get 安装 mssql-tools=14.0.6.0-1
  6. apt-mark 保留 mssql-tools
  7. apt-mark 保留 msodbcsql

我从这个链接得到了这个解决方案:

https://github.com/Microsoft/msphpsql/issues/684

0赞 nenetto 5/16/2018 #2

我留下了这个对我有用的脚本。

我的问题与您的问题非常相似,我测试了所有选项,例如更改驱动程序位置、创建符号链接、修改 /etc/*.ini 文件等......没有任何效果。

我的问题是,在 alpine 的 docker 容器中运行 python 3.6、pyodbc 包是库 libssl1.0.0

在这里,您将找到我使用驱动程序 v13 的 pyodbc Debian 8 (alpine) docker 映像的安装脚本

DRIVER={ODBC Driver 13 for SQL Server}

我为数据库连接运行的命令是:

import pyodbc
connection_string = 'DRIVER={ODBC Driver 13 for SQL Server};'
connection_string += 'SERVER={0};DATABASE={1};UID={2};PWD={3};'.format(host,dbname,user,pwd)
connection = pyodbc.connect(connection_string)
8赞 dandev486 2/7/2019 #3

仅适用于那些在Ubuntu 18.04上遇到相同问题的人,并且来到这里但没有通过接受的答案解决问题,因为它针对Ubuntu 16.04,共享另一种可能的解决方案,使用Ubuntu 18.04 docker容器测试了依赖于Microsoft的odbc驱动程序的Python 3.6应用程序。

步骤 1:检查库依赖项

使用命令 ldd 检查是否满足所有库依赖项。在我的环境中,缺少的库是 libssl1.0.0libgssapi-krb5-2。下面是缺少依赖项的命令及其输出的示例,如果需要,请对输出进行 grepnot found

$ ldd /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.2.so.0.1 

libfoo.so => /path/to/lib/foo/libfoo.so
libbar.so => /path/to/lib/bar/libbar.so
libbaz.so => not found

步骤 2:检查谁提供了缺少的依赖项

使用 dpkg search 检查哪个软件包提供了缺失的依赖项。

$ dpkg -S libbaz.so

libbaz:amd64: /usr/lib/x86_64-linux-gnu/libbaz.so.1.2.3,

第 3 步:安装缺少的依赖项

$ sudo apt install libbaz

评论

0赞 Daan 6/23/2022
这对我有用,但是 de 缺少依赖项是 libgssapi_krb5.so.2,在 dpkg -S 中找不到。取而代之的是,我在 packages.ubuntu.com