SQL Server 2019/Ubunti가 ipv6 대신 ipv4를 사용하도록 강제

SQL Server 2019/Ubunti가 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

또한 다시 시작한 후에 구성이 강제로 바인딩됩니다 any <ipv4>. 이 동작은 문서화되지 않은 것 같으므로 후손을 위해 여기에 남겨 두겠습니다.

답변2

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

너무 작동

답변3

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

systemctl restart mssql-server

잘된다 !!

관련 정보