sqlcmd 不起作用:无法打开 lib libmsodbcsql.13.dylib

sqlcmd 不起作用:无法打开 lib libmsodbcsql.13.dylib

我已经安装mssql-toolsmsodbcsql

我已经符号链接/usr/local/homebrew/lib/libmsodbcsql.13.dylib/usr/local/lib/libmsodbcsql.13.dylib

但 sqlcmd 仍然抱怨缺少 lib,

%> sqlcmd -S IP
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Can't open lib '/usr/local/lib/libmsodbcsql.13.dylib' : file not found.

有任何想法吗?

答案1

正如@thrig所说,我试图dtruss调试这个问题,

sudo dtruss sqlcmd -S someserver

从输出来看,sqlcmd 尝试读取/usr/local/lib/libodbcinst.2.dylib并失败。

添加符号链接libodbcinst.2.dylib解决了问题,所以它实际上是由缺少依赖项引起的,叹息

答案2

并非我们所有的机器上都会发生这种情况,但我们今天确实遇到了这种情况。我们跑

brew install msodbcsql

我们遇到

libmsodbcsql13.dylib not found

我们跑

brew link msodbcsql

这导致:

4 symlinks created

这为我们解决了这个问题。

答案3

解决方案

首先尝试再次重新安装软件包:

brew tap microsoft/msodbcsql https://github.com/Microsoft/homebrew-mssql-release
ACCEPT_EULA=y brew reinstall --no-sandbox msodbcsql mssql-tools

然后如果仍然发生,请运行:

cp -v "$(brew list msodbcsql | grep odbcinst.ini$)" ~/.odbcinst.ini

复制定义 SQL ODBC 驱动程序位置的 INI 文件。

错误报告:SQL Server:无法打开库“ODBC Driver 13 for SQL Server”

然后通过以下方式测试您的 SQL 设置:sqlcmd -S localhostisql -v -k <connection-string>

看:在 Linux 和 macOS 上安装适用于 SQL Server 的 Microsoft ODBC 驱动程序

调试

$ odbcinst -j # Verify the config.
$ sleep 20 && sqlcmd -S localhost & # Run `sqlcmd` in the background.
$ sudo fs_usage -f filesys | grep -w sqlcmd | grep -e open -e access -e stat64
open              /Users/myuser/.odbcinst.ini                 
access            /usr/local/lib/ODBC Driver 13 for SQL Server
access            /lib>>>>>>>>>>>>>>>>>>>>                    
access            /usr/lib/ODBC Driver 13 for SQL Server      
stat64            ODBC Driver 13 for SQL Server               
stat64            /opt/X11/lib/ODBC Driver 13 for SQL Server  
stat64            /usr/lib/ODBC Driver 13 for SQL Server      

对于 Linux,请参阅此 Anaconda 相关问题:SQL Server 的 ODBC 驱动程序 13 无法打开库

答案4

解决方案:13版本需要打开ssl v 1.0.0,可以尝试一下。

酿造安装https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

相关内容