web-dev-qa-db-ja.com

sqlcmdは、そこにあるライブラリ(libmsodbcsql-17.0.so.1.1)を見つけることができません

私はUbuntu16.04を使用して、スクリプトからプログラムで起動されたsqlcmdを使用して、VMのクラウドでSQLクエリを実行しようとしています。

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

私はこのエラーを受け取り続けます:

Sqlcmd:エラー:Microsoft ODBC SQL Serverのドライバー17:libを開くことができません '/opt/Microsoft/msodbcsql17/lib64/libmsodbcsql-17.0.so.1.1':ファイルが見つかりません。

しかし、ファイルは明らかにそこにあります:

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

libmsodbcsql-17.0.so.1.1

6
Hack-R

私は同じ問題を抱えています、この解決策は私のために働きました:あなたはmsodbcsqlバージョンをダウングレードする必要があります、

  1. apt-get remove msodbcsql
  2. apt-cache madison msodbcsql
  3. apt-get install msodbcsql = 13.1.9.2-1
  4. apt-cache madison mssql-tools
  5. ACCEPT_EULA = Y apt-get install mssql-tools = 14.0.6.0-1
  6. apt-mark hold mssql-tools
  7. apt-mark hold msodbcsql

私はこのリンクからこの解決策を得ました:

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

7
Diyar

Ubuntu 18.04で同じ問題が発生し、ここに来たが、受け入れられた回答では問題が解決されなかった人のためだけに。 Python 3.6Microsoftのodbcドライバーに依存するアプリケーション。

ステップ1:ライブラリの依存関係を確認する

コマンド ldd を使用して、すべてのライブラリ依存関係が満たされているかどうかを確認します。私の環境では、不足しているライブラリはlibssl1.0.0libgssapi-krb5-2でした。以下に、依存関係が欠落しているコマンドとその出力の例、 grep 必要に応じてnot 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
7

私は私のために働いたこのスクリプトを残します。

私の問題はあなたの問題と非常に似ていて、ドライバーの場所の変更、シンボリックリンクの作成、/ etc/*。iniファイルの変更などのすべてのオプションをテストしました...何も機能しませんでした。

私の問題は、python 3.6、AlpineのDockerコンテナでpyodbcパッケージを実行すると、ライブラリlibssl1.0.0でした)

ここでは、 pyodbcのインストールスクリプトDebian 8(Alpine)docker image ドライバーv13を使用しています。

DRIVER = {SQLServer用のODBCドライバー13}

データベース接続のために実行したコマンドは次のとおりです。

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)
0
nenetto