在 Linux 上使用环境变量配置 SQL Server 设置

适用于:SQL Server - Linux

可以使用多个不同的环境变量在 Linux 上配置 SQL Server。 这些变量用于两个方案:

提示

如果需要在完成这些设置方案之后配置 SQL Server,请参阅使用 mssql-conf 工具配置 Linux 上的 SQL Server

环境变量

环境变量 说明
ACCEPT_EULA ACCEPT_EULA 变量设置为任意值,以确认接受最终用户许可协议。 SQL Server 映像的必需设置。
MSSQL_SA_PASSWORD 配置 sa 密码。

SA_PASSWORD 环境变量已弃用。 请改用 MSSQL_SA_PASSWORD
MSSQL_PID 设置 SQL Server 版本 或产品密钥。 以下 SQL Server 版本 表中列出了可能的值。 如果指定产品密钥,则它必须采用数字或字母的形式#####-#####-#####-#####-######
MSSQL_LCID 设置用于 SQL Server 的语言 ID。 例如,1036 为法语。
MSSQL_COLLATION 设置 SQL Server 的默认排序规则。 这将替代语言 ID (LCID) 到排序规则的默认映射。
MSSQL_MEMORY_LIMIT_MB 设置 SQL Server 可以使用的最大内存量(以 MB 为单位)。 默认情况下,它为物理内存总量的 80%。
MSSQL_TCP_PORT 配置 SQL Server 侦听的 TCP 端口(默认为 1433)。
MSSQL_IP_ADDRESS 设置 IP 地址。 目前,IP 地址必须为 IPv4 样式 (0.0.0.0)。
MSSQL_BACKUP_DIR 设置默认备份目录位置。
MSSQL_DATA_DIR 更改在其中创建新的 SQL Server 数据库数据文件 (.mdf) 的目录。
MSSQL_LOG_DIR 更改在其中创建新的 SQL Server 数据库日志 (.ldf) 文件的目录。
MSSQL_DUMP_DIR 更改 SQL Server 存放内存转储和其他故障排除文件的默认目录。
MSSQL_ENABLE_HADR 启用可用性组。 例如,“1”为已启用,“0”为已禁用
MSSQL_AGENT_ENABLED 启用 SQL Server 代理。 例如,“true”为已启用,“false”为已禁用。 默认情况下,代理处于禁用状态。
MSSQL_MASTER_DATA_FILE 设置 master 数据库数据文件的位置。 在首次运行 SQL Server 之前,必须将其命名为 master.mdf
MSSQL_MASTER_LOG_FILE 设置 master 数据库日志文件的位置。 在首次运行 SQL Server 之前,必须将其命名为 mastlog.ldf
MSSQL_ERROR_LOG_FILE 设置 errorlog 文件的位置。 例如,/var/opt/mssql/log/errorlog

SQL Server 版本

MSSQL_PID 版本
Evaluation SQL Server 评估版
Developer SQL Server 开发者版本
Express SQL Server Express 版本
Web SQL Server Web 版本
Standard SQL Server Standard 版本
Enterprise 此旧选项表示基于 Enterprise edition Server + 客户端访问许可证(CAL)的许可,并且限制为每个 SQL Server 实例最多 20 个核心。 Enterprise 不适用于新协议。 你应在想要部署 Enterprise Edition 时选择 EnterpriseCore
EnterpriseCore SQL Server Enterprise Core 版本。 EnterpriseCore 表示没有核心限制的基于核心的服务器许可模型。 有关详细信息,请参阅按 SQL Server 版本划分的计算能力限制
A product key 如果指定产品密钥,则它必须采用数字或字母的形式#####-#####-#####-#####-######

有关这些版本的详细信息,请参阅 SQL Server 版本

MSSQL_PID 版本
Evaluation SQL Server 评估版
Express SQL Server Express 版本
StandardDeveloper

(对于容器,请使用 DeveloperStandard
SQL Server 标准开发人员版
Standard SQL Server Standard 版本
EnterpriseDeveloper

(对于容器,请使用 Developer
SQL Server Enterprise Developer Edition
Enterprise 此旧选项表示基于 Enterprise edition Server + 客户端访问许可证(CAL)的许可,并且限制为每个 SQL Server 实例最多 20 个核心。 Enterprise 不适用于新协议。 你应在想要部署 Enterprise Edition 时选择 EnterpriseCore
EnterpriseCore SQL Server Enterprise Core 版本。 EnterpriseCore 表示没有核心限制的基于核心的服务器许可模型。 有关详细信息,请参阅按 SQL Server 版本划分的计算能力限制
A product key 如果指定产品密钥,则它必须采用数字或字母的形式#####-#####-#####-#####-######

有关这些版本的详细信息,请参阅 SQL Server 版本

与初始设置配合使用

此示例使用已配置的环境变量运行 mssql-conf setup。 指定了以下环境变量:

  • ACCEPT_EULA 接受最终用户许可协议。

  • MSSQL_PID 指定用于非生产用途的免费许可的 SQL Server Developer Edition。

  • MSSQL_SA_PASSWORD 设置强密码。 密码应遵循 SQL Server 默认密码策略。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 密码可最长为 128 个字符。 使用的密码应尽可能长,尽可能复杂。

  • MSSQL_TCP_PORT 将 SQL Server 侦听的 TCP 端口设置为 1234。

sudo ACCEPT_EULA='Y' MSSQL_PID='Developer' MSSQL_SA_PASSWORD='<password>' MSSQL_TCP_PORT=1234 /opt/mssql/bin/mssql-conf setup

与 Docker 配合使用

此示例 docker 命令使用以下环境变量来创建新的 SQL Server 容器:

  • ACCEPT_EULA 接受最终用户许可协议。

  • MSSQL_PID 指定用于非生产用途的免费许可的 SQL Server Developer Edition。

    为 SQL Server 2025(17.x)或更高版本部署容器时,请用于 MSSQL_PID=DeveloperStandard 标准开发人员版和 MSSQL_PID=Developer 企业开发人员版。

  • MSSQL_SA_PASSWORD 设置强密码。 密码应遵循 SQL Server 默认密码策略。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 密码可最长为 128 个字符。 使用的密码应尽可能长,尽可能复杂。

  • MSSQL_TCP_PORT 将 SQL Server 侦听的 TCP 端口设置为 1234。 这意味着在此示例中,必须使用 -p 1234:1234 命令映射自定义 TCP 端口,而不是将端口 1433(默认)映射到主机端口。

如果在 Linux 上运行 Docker,请将以下语法与单引号配合使用:

docker run -e ACCEPT_EULA=Y -e MSSQL_PID='Developer' -e MSSQL_SA_PASSWORD='<password>' -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2017-latest

如果在 Windows 上运行 Docker,请将以下语法与双引号配合使用:

docker run -e ACCEPT_EULA=Y -e MSSQL_PID="Developer" -e MSSQL_SA_PASSWORD="<password>" -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2017-latest

注意

在容器中运行生产版本的过程略有不同。 有关详细信息,请参阅运行生产容器映像

如果在 Linux 上运行 Docker,请将以下语法与单引号配合使用:

docker run -e ACCEPT_EULA=Y -e MSSQL_PID='Developer' -e MSSQL_SA_PASSWORD='<password>' -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2019-latest

如果在 Windows 上运行 Docker,请将以下语法与双引号配合使用:

docker run -e ACCEPT_EULA=Y -e MSSQL_PID="Developer" -e MSSQL_SA_PASSWORD="<password>" -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2019-latest

如果在 Linux 上运行 Docker,请将以下语法与单引号配合使用:

docker run -e ACCEPT_EULA=Y -e MSSQL_PID='Developer' -e MSSQL_SA_PASSWORD='<password>' -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2022-latest

如果在 Windows 上运行 Docker,请将以下语法与双引号配合使用:

docker run -e ACCEPT_EULA=Y -e MSSQL_PID="Developer" -e MSSQL_SA_PASSWORD="<password>" -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2022-latest

如果在 Linux 上运行 Docker,请将以下语法与单引号配合使用:

docker run -e ACCEPT_EULA=Y -e MSSQL_PID='Developer' -e MSSQL_SA_PASSWORD='<password>' -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2025-latest

如果在 Windows 上运行 Docker,请将以下语法与双引号配合使用:

docker run -e ACCEPT_EULA=Y -e MSSQL_PID="Developer" -e MSSQL_SA_PASSWORD="<password>" -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2025-latest

为 SQL Server 2025(17.x)或更高版本部署容器时,请用于 MSSQL_PID=DeveloperStandard 标准开发人员版和 MSSQL_PID=Developer 企业开发人员版。

注意

密码应遵循 SQL Server 默认密码策略。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 密码可最长为 128 个字符。 使用的密码应尽可能长,尽可能复杂。

参与编辑 SQL 文档

你是否知道你可以自行编辑 SQL 内容? 你如果这样做,不仅可以帮助改进我们的文档,还可以获得页面贡献者的殊荣。

有关详细信息,请参阅 “编辑Microsoft Learn 文档