sqlcmd não funciona: Não é possível abrir lib libmsodbcsql.13.dylib

5

Eu instalei mssql-tools e msodbcsql ,

E eu criei um link simbólico para /usr/local/homebrew/lib/libmsodbcsql.13.dylib para /usr/local/lib/libmsodbcsql.13.dylib

Mas o sqlcmd ainda reclama da falta de 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.

Alguma idéia?

    
por daisy 09.06.2017 / 18:32

4 respostas

3

Como o @thrig diz, tentei dtruss para depurar o problema,

sudo dtruss sqlcmd -S someserver

E da saída, o sqlcmd tenta ler /usr/local/lib/libodbcinst.2.dylib e falhou.

Adicionar o symlink de libodbcinst.2.dylib resolveu o problema, então é causado por uma dependência ausente, suspiro

    
por 10.06.2017 / 16:51
2

Isso não acontece em todas as nossas máquinas, mas nós encontramos isso hoje. Nós corremos

brew install msodbcsql

Encontramos

libmsodbcsql13.dylib not found

Nós corremos

brew link msodbcsql

Isso resultou em:

4 symlinks created

Isso corrigiu o problema para nós.

    
por 30.06.2017 / 16:50
0

Solução

Antes de mais nada, tente reinstalar os pacotes novamente:

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

Então, se ainda estiver acontecendo, execute:

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

para copiar o arquivo INI que define o local do driver ODBC para SQL.

Relatório de erros: SQL Server: Não é possível abrir o 'Driver ODBC 13' para o SQL Server '.

Em seguida, teste sua configuração do SQL por: sqlcmd -S localhost ou isql -v -k <connection-string> .

Consulte: Instalando o driver ODBC da Microsoft para SQL Server no Linux e no macOS .

Depuração

$ 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      

Para Linux, veja este problema relacionado ao Anaconda: O Driver ODBC 13 para SQL Server não pode abrir lib .

    
por 24.10.2017 / 14:16
0

Eu tive o mesmo problema e o dtruss trace produziu a mesma saída descrita por daisy.

A localização da biblioteca ausente é com os drivers unixodbc. Você pode instalar aqueles com brew install unixodbc se você não os tiver. O comando de link e os caminhos necessários para vincular no meu sistema foram os seguintes:

ln /usr/local/Cellar/unixodbc/2.3.6/lib/libodbcinst.2.dylib /usr/local/lib/libodbcinst.2.dylib

Obviamente, você pode ter uma versão diferente, mas ela deve estar localizada abaixo do caminho /usr/local/Cellar/unixodbc

Depois de adicionar este link, posso me conectar aos meus servidores SQL locais e remotos a partir do terminal. Estou no macOS High Sierra 10.13.5.

    
por 20.06.2018 / 17:35

Tags