SQL Server 2019/Ubuntu で IPv6 ではなく IPv4 を使用するように強制する

SQL Server 2019/Ubuntu で IPv6 ではなく IPv4 を使用するように強制する

社内製品用に Linux サーバー上で Microsoft の SQL Server の使いやすさをテストしていますが、構成中に問題が発生しました。SQLServer 2019 (プレビュー) をセットアップして構成しようとしており、リポジトリをセットアップしてそこから SQL Server バイナリをインストールすることができました。ただし、実行してsudo /opt/mssql/bin/mssql-conf setupエディションを選択すると、しばらく停止し、エラーが発生します。ログには次のように表示されます。

2019-05-21 14:07:57.08 spid22s     Error: 26024, Severity: 16, State: 1.
2019-05-21 14:07:57.08 spid22s     Server failed to listen on 'any' <ipv6> 1433. Error: 0x2742. To proceed, notify your system administrator.
2019-05-21 14:07:57.08 spid22s     Error: 17182, Severity: 16, State: 1.
2019-05-21 14:07:57.08 spid22s     TDSSNIClient initialization failed with error 0x2742, status code 0xa. Reason: Unable to initialize the TCP/IP listener. A socket operation encountered a dead network. 

原因は明らかです。セットアップは でサーバーを起動しようとします<ipv6>が、これとは関係のない理由で、実稼働環境では無効にしています。 でセットアップして実行するには SQL Server が必要です<ipv4>が、 を使ってそれを変更する方法はないようですmssql-configmssql-config の説明

これを設定した経験のある人はいますか?

答え1

環境変数で解決策を見つけました。

sudo MSSQL_IP_ADDRESS=0.0.0.0 /opt/mssql/bin/mssql-conf setup

これにより、再起動後に config が強制的にバインドされますany <ipv4>。この動作は文書化されていないようですので、後世のためにここに残しておきます。

答え2

sudo /opt/mssql/bin/mssql-conf ネットワーク IP アドレスを 0.0.0.0 に設定します

作品も

答え3

/opt/mssql/bin/mssql-conf set network.ipaddress 0.0.0.0

systemctl restart mssql-server

うまく動作します!!

関連情報