
社内製品用に 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-config
。mssql-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
うまく動作します!!