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.
何か案は?
@thrigが言うように、私は問題をデバッグするためにdtruss
を試みました、
Sudo dtruss sqlcmd -S someserver
そして、出力から、sqlcmdは/usr/local/lib/libodbcinst.2.dylib
を読み取ろうとして失敗しました。
libodbcinst.2.dylib
のシンボリックリンクを追加すると問題が解決したため、依存関係が欠落していることが原因です。
これはすべてのマシンで発生するわけではありませんが、今日は発生しました。私たちは走った
brew install msodbcsql
出会った
libmsodbcsql13.dylib not found
私たちは走った
brew link msodbcsql
これは次の結果をもたらしました:
4 symlinks created
これで問題が解決しました。
まず、パッケージを再インストールしてみてください:
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の場所を定義するINIファイルをコピーするODBCドライバ。
バグレポート: SQL Server:Ca n't open lib 'ODBC Driver 13 for SQL Server' 。
次に、sqlcmd -S localhost
またはisql -v -k <connection-string>
を使用してSQL設定をテストします。
参照: MicrosoftのインストールODBC LinuxおよびmacOS上のSQL Server用ドライバー 。
$ 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がlibを開けない を参照してください。
私は同じ問題に遭遇し、dtruss
トレースはデイジーによって記述されたのと同じ出力を生成しました。
不足しているlibの場所はunixodbcドライバーにあります。ない場合は、brew install unixodbc
を使用してインストールできます。私のシステムでのリンクに必要なリンクコマンドとパスは次のとおりです。
ln /usr/local/Cellar/unixodbc/2.3.6/lib/libodbcinst.2.dylib /usr/local/lib/libodbcinst.2.dylib
明らかに、別のバージョンを使用している可能性がありますが、パス/usr/local/Cellar/unixodbc
の下に配置する必要があります
このリンクを追加した後、ターミナルからローカルおよびリモートのSQLサーバーに接続できます。 macOS High Sierra 10.13.5を使用しています。