web-dev-qa-db-ja.com

Ubuntu上のSQL Server-再起動後に既存の接続がリモートホストによって強制的に閉じられました

UbuntuでSQL Serverをしばらく実行していて、すべてが正常に機能していますが、サーバーを再起動すると、SQL Serverへのすべての接続が次のエラーで失敗します。

A connection was successfully established with the server, but then an error occurred during the login process. 
(provider: SSL Provider, error: 0 - 
An existing connection was forcibly closed by the remote Host.) 
(Microsoft SQL Server, Error: 10054)

SQL Serverのアンインストールと再インストール、さまざまなmssql-conf値の設定(再度削除されたため)などを試しましたが、何も違いはありません。

Windowsに関する記事は、SSL関連であると指摘しているようですが、SSLが有効になっていませんでした。私はそれを有効にして証明書を設定しようとしましたが、証明書と秘密キー777へのアクセス許可を作成し、mssqlユーザー/グループに割り当てたにもかかわらず、読み取れなかったとSQL Serverを起動できませんでしただから私は再び削除しました。

私がアイデアがなくなったときに、それを再び機能させるために私ができることを誰かが提案できますか?

ありがとうロビン

5
Robin Wilson

MSSQLはOpenSSL v1.0を想定していますが、Ubuntu 18以降はOpenSSL 1.1を使用しているため、 OpenSSLバージョンの不一致。解決策 は、ssl v1.0を以下のようにシンボリックリンクします。

  1. SQL Serverを停止する

    Sudo systemctl stop mssql-server
    
  2. サービス構成のエディターを開きます

    Sudo systemctl edit mssql-server
    
  3. エディターで、次の行をファイルに追加して保存します。

    [Service]
    Environment="LD_LIBRARY_PATH=/opt/mssql/lib"
    
  4. SQL Serverが使用するOpenSSL 1.0へのシンボリックリンクを作成する

    Sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 /opt/mssql/lib/libssl.so
    
    Sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /opt/mssql/lib/libcrypto.so
    
  5. SQL Serverを起動する

    Sudo systemctl start mssql-server
    
8
Dawoodjee