it-swarm-ja.com

unixODBC Driver Manager SQLServerエラー

スクリプトを実行してMSSQLのインスタンスに接続すると、以下のエラーが発生します。

Ubuntu Disco Dingo(開発ブランチ)19.04を使用しています。

Ubuntu 18.04.02では、以下の問題は発生しません。ただし、新しいUbuntuバージョンで動作するようにしたいと思います。

2019年3月22日付けのAzureData Studiov1.5.2をインストールしています

Azure Data Studio v 1.5.2

Microsoft ODBC Server 2017 Driver for Linux(バージョン:Ubuntu 18.10)もインストールしました

SQL Server用のODBCドライバー17

ドライバーがパスに存在することを確認しました:

/opt/Microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1

次の出力でodbcinst-jを実行しました。

unixODBC 2.3.7
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/leeca/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

ただし、2つの場所にodbcinst.iniファイルがあります。

場所1:

/opt/Microsoft/msodbcsql17/etc/odbcinst.ini

nano odbcinst.ini:

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/Microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1

場所2:

/etc/odbcinst.ini

nano odbcinst.ini:

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/Microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1
UsageCount=1

/opt/Microsoft/msodbcsql17/etcを実行して/etc/odbcinst.ini内のファイルをシンボリックリンクするために、ln -s /etc/odbcinst.iniに移動しようとしましたが、次のエラーで失敗します:ln: failed to create symbolic link 'etc/odbcinst.ini': File exists

このスクリプトを使用してJupyterLabのSQLServerインスタンスに接続します。

class Database():
    def __init__(self):
        self.cnxn = pyodbc.connect(driver='{ODBC Driver 17 for SQL Server}',
                                   server='servername',
                                   database=dbname,
                                   uid=user,
                                   pwd=password)

エラーが発生します:('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/opt/Microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1' : file not found (0) (SQLDriverConnect)")

Azure DataStudioを使用してSQLServerインスタンスに接続すると、次のエラーが発生します。

Extension Host terminated unexpectedly.

フォルダパスのアクセス許可:

 drwxr-xr-x /
 drwxrwxr-x opt
 drwxr-xr-x Microsoft
 drwxr-xr-x msodbcsql17
 drwxr-xr-x lib64
 -rwxr-xr-x libmsodbcsql-17.3.so.1.1

f: /etc/
 drwxr-xr-x /
 drwxr-xr-x etc

助けていただければ幸いです、ありがとう

1
yongsheng

昨日と今日のUbuntu19.04でこの正確なエラーが発生し、何時間もの欲求不満の後で助けられるかもしれないと思いました。

コマンド「ldd/opt/Microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1」を使用しましたが、libssl1.0.0が見つかりませんでした。

残念ながら、Ubuntu 19.04Discoのリポジトリ内で利用できる適切な候補の代替品がありませんでした。このリソースから.debを直接ダウンロードできました: https://packages.ubuntu.com/cosmic/AMD64/libssl1.0.0/download これで問題は解決しました。

2
Sean Halls