我已经安装mssql-tools
了msodbcsql
,
我已经符号链接/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 localhost
或isql -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