适用于:SQL Server - Linux
本快速入门介绍了如何在 Ubuntu 18.04 上安装 SQL Server 2017 (14.x)。 然后可以使用 sqlcmd 进行连接,创建第一个数据库并运行查询。
有关支持的平台的详细信息,请参阅 Linux 上的 SQL Server 2017 的发行说明。
本快速入门介绍了如何在 Ubuntu 20.04 上安装 SQL Server 2019 (15.x)。 然后可以使用 sqlcmd 进行连接,创建第一个数据库并运行查询。
有关支持的平台的详细信息,请参阅 Linux 上的 SQL Server 2019 的发行说明。
本快速入门介绍了如何在 Ubuntu 20.04 或 22.04 上安装 SQL Server 2022 (16.x)。 然后可以使用 sqlcmd 进行连接,创建第一个数据库并运行查询。
有关受支持的平台的详细信息,请参阅 Linux 上的 SQL Server 2022 的发行说明。
在本快速入门中,将在 Ubuntu 22.04 上安装 SQL Server 2025 (17.x) 预览版。 然后可以使用 sqlcmd 进行连接,创建第一个数据库并运行查询。
有关支持的平台的详细信息,请参阅 Linux 上的 SQL Server 2025 预览版发行说明。
提示
本教程需要用户输入和 Internet 连接。 如果您对无人值守或离线安装过程感兴趣,请参阅 Linux 上 SQL Server 的安装指南。
如果选择在 Ubuntu 上预安装 SQL Server 虚拟机 VM),以运行基于生产的工作负载,请遵循创建 SQL Server VM 的最佳做法。
Azure 市场映像
可以根据以下两个 Azure 市场映像之一创建 VM:
使用这些映像时,可以避免安装步骤,并且可以通过提供开始使用 SQL Server 所需的 SKU 和 sa
密码直接配置实例。 Microsoft 和 Canonical 都完全支持使用上述市场映像部署在 Ubuntu Pro 上的 SQL Server Azure VM。
可以使用以下命令,通过 mssql-conf 配置 Linux 上的 SQL Server:
sudo /opt/mssql/bin/mssql-conf setup
Azure 市场映像
可以根据以下 Azure 市场映像创建 VM:Ubuntu 20.04。
使用此映像时,可以避免安装步骤,并且可以通过提供开始使用 SQL Server 所需的 SKU 和 sa
密码直接配置实例。 Microsoft 和 Canonical 都完全支持使用上述市场映像部署在 Ubuntu Pro 上的 SQL Server Azure VM。
可以使用以下命令,通过 mssql-conf 配置 Linux 上的 SQL Server:
sudo /opt/mssql/bin/mssql-conf setup
注意
密码应遵循 SQL Server 默认密码策略。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 密码可最长为 128 个字符。 使用的密码应尽可能长,尽可能复杂。
先决条件
需配备 Ubuntu 18.04 计算机,且至少具有 2 GB 内存。
要在自己的计算机上安装 Ubuntu 18.04,请转到 https://releases.ubuntu.com/18.04/。 还可以在 Azure 中创建 Ubuntu 虚拟机。 请参阅教程:使用 Azure CLI 创建和管理 Linux VM。
需配备 Ubuntu 20.04 计算机,且至少具有 2 GB 内存。
要在自己的计算机上安装 Ubuntu 20.04,请转到 https://releases.ubuntu.com/20.04/。 还可以在 Azure 中创建 Ubuntu 虚拟机。 请参阅教程:使用 Azure CLI 创建和管理 Linux VM。
需配备 Ubuntu 20.04 计算机,且至少具有 2 GB 内存。
要在自己的计算机上安装 Ubuntu 20.04,请转到 https://releases.ubuntu.com/20.04/。 还可以在 Azure 中创建 Ubuntu 虚拟机。 请参阅教程:使用 Azure CLI 创建和管理 Linux VM。
必须具有 至少 2 GB 内存的 Ubuntu 22.04 计算机。
若要在自己的计算机上安装 Ubuntu 22.04,请转到 https://releases.ubuntu.com/22.04/。 还可以在 Azure 中创建 Ubuntu 虚拟机。 请参阅教程:使用 Azure CLI 创建和管理 Linux VM。
如果以前安装了 SQL Server 的社区技术预览版 (CTP) 或候选发布 (RC) 版本,则必须先删除旧存储库,然后再执行这些步骤。 有关详细信息,请参阅配置存储库以便安装和升级 Linux 上的 SQL Server。
不支持将适用于 Linux 的 Windows 子系统作为 SQL Server 的安装目标。
有关其他系统要求,请参阅 Linux 上的 SQL Server 的系统要求。
安装 SQL Server
要在 Ubuntu 上配置 SQL Server,请在终端中运行以下命令以安装 mssql-server 包 。
导入公共存储库 GPG 密钥:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
注册 SQL Server Ubuntu 存储库:
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2017.list)"
提示
如果要安装不同版本的 SQL Server,请参阅本文的 SQL Server 2019 (15.x)、 SQL Server 2022 (16.x)或 SQL Server 2025 (17.x) 预览 版。
运行以下命令以安装 SQL Server:
sudo apt-get update sudo apt-get install -y mssql-server
包安装完成后,运行
mssql-conf setup
,按照提示设置sa
密码并选择版本。 作为提醒,以下 SQL Server 版本是免费提供许可的:Evaluation、Developer 和 Express 版。sudo /opt/mssql/bin/mssql-conf setup
注意
密码应遵循 SQL Server 默认密码策略。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 密码可最长为 128 个字符。 使用的密码应尽可能长,尽可能复杂。
完成配置后,验证服务是否正在运行:
systemctl status mssql-server --no-pager
如果计划远程连接,可能还需要在防火墙上打开 SQL Server TCP 端口(默认值为 1433)。
导入公共存储库 GPG 密钥:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
注册 SQL Server Ubuntu 存储库:
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"
提示
如果要安装不同版本的 SQL Server,请参阅本文的 SQL Server 2017 (14.x)、 SQL Server 2022 (16.x)或 SQL Server 2025 (17.x) 预览 版。
运行以下命令以安装 SQL Server:
sudo apt-get update sudo apt-get install -y mssql-server
包安装完成后,运行
mssql-conf setup
,按照提示设置sa
密码并选择版本。 作为提醒,以下 SQL Server 版本是免费提供许可的:Evaluation、Developer 和 Express 版。sudo /opt/mssql/bin/mssql-conf setup
注意
密码应遵循 SQL Server 默认密码策略。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 密码可最长为 128 个字符。 使用的密码应尽可能长,尽可能复杂。
完成配置后,验证服务是否正在运行:
systemctl status mssql-server --no-pager
如果计划远程连接,可能还需要在防火墙上打开 SQL Server TCP 端口(默认值为 1433)。
导入公共存储库 GPG 密钥:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
注册 SQL Server Ubuntu 存储库:
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2022.list)"
提示
如果要安装不同版本的 SQL Server,请参阅本文的 SQL Server 2017 (14.x)、 SQL Server 2019 (15.x)或 SQL Server 2025 (17.x) 预览 版。
运行以下命令以安装 SQL Server:
sudo apt-get update sudo apt-get install -y mssql-server
包安装完成后,运行
mssql-conf setup
,按照提示设置sa
密码并选择版本。 作为提醒,以下 SQL Server 版本是免费提供许可的:Evaluation、Developer 和 Express 版。sudo /opt/mssql/bin/mssql-conf setup
注意
密码应遵循 SQL Server 默认密码策略。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 密码可最长为 128 个字符。 使用的密码应尽可能长,尽可能复杂。
完成配置后,验证服务是否正在运行:
systemctl status mssql-server --no-pager
如果计划远程连接,可能还需要在防火墙上打开 SQL Server TCP 端口(默认值为 1433)。
下载公钥,从 ASCII 转换为 GPG 格式,并将其写入所需的位置:
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
如果收到有关公钥不可用的警告,可以改用以下命令:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
手动下载并注册 SQL Server Ubuntu 存储库:
curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-preview.list | sudo tee /etc/apt/sources.list.d/mssql-server-preview.list
提示
如果要安装不同版本的 SQL Server,请参阅本文的 SQL Server 2017 (14.x)、 SQL Server 2019 (15.x)或 SQL Server 2022 (16.x) 版本。
运行以下命令以安装 SQL Server:
sudo apt-get update sudo apt-get install -y mssql-server
包安装完成后,运行
mssql-conf setup
,按照提示设置sa
密码并选择版本。 作为提醒,以下 SQL Server 版本是免费提供许可的:Evaluation、Developer 和 Express 版。sudo /opt/mssql/bin/mssql-conf setup
注意
密码应遵循 SQL Server 默认密码策略。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 密码可最长为 128 个字符。 使用的密码应尽可能长,尽可能复杂。
完成配置后,验证服务是否正在运行:
systemctl status mssql-server --no-pager
如果计划远程连接,可能还需要在防火墙上打开 SQL Server TCP 端口(默认值为 1433)。
此时,SQL Server 已在 Ubuntu 计算机上运行,随时可以使用。
采取最佳做法: 禁用 SA 帐户
在安装后首次使用系统管理员 (sa
) 帐户连接到 SQL Server 实例时,请务必执行这些步骤,然后立即禁用 sa
帐户,这是旨在确保安全性的一项最佳做法。
创建新的登录帐户,并将其设为 sysadmin 服务器角色的成员。
根据你使用的是容器还是非容器部署,启用 Windows 身份验证,并创建一个新的基于 Windows 的登录帐户,并将其添加到 sysadmin 服务器角色中。
否则,请使用 SQL Server 身份验证创建登录帐户,并将其添加到 sysadmin 服务器角色。
使用创建的新登录帐户连接 SQL Server 实例。
按照安全最佳做法的建议,禁用
sa
帐户。
安装 SQL Server 命令行工具
若要创建数据库,则需要使用可在 SQL Server 上运行 Transact-SQL 语句的工具进行连接。 按照以下步骤安装 SQL Server 命令行工具:sqlcmd 实用工具 和 bcp 实用工具。
通过以下步骤在 Ubuntu 上安装 mssql-tools18。
注意
- 自 SQL Server 2019 (15.x) CU 3 起,开始支持 Ubuntu 18.04。
- 自 SQL Server 2019 (15.x) CU 10 起,开始支持 Ubuntu 20.04。
导入公共存储库 GPG 密钥。
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
注册 Microsoft Ubuntu 存储库。
对于 Ubuntu 22.04,请使用以下命令:
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
对于 Ubuntu 20.04,请使用以下命令:
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
对于 Ubuntu 18.04,请使用以下命令:
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
对于 Ubuntu 16.04,请使用以下命令:
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
更新源列表,并使用 unixODBC 开发人员包运行安装命令。
sudo apt-get update sudo apt-get install mssql-tools18 unixodbc-dev
若要将 mssql-tools 更新至最新版本,请运行以下命令:
sudo apt-get update sudo apt-get install mssql-tools18
可选:向 bash shell 中的 环境变量添加
/opt/mssql-tools18/bin/
。若要使 sqlcmd 和 bcp 能从登录会话的 bash shell 进行访问,请使用下列命令修改
PATH
文件中的~/.bash_profile
:echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile source ~/.bash_profile
若要使 sqlcmd 和 bcp 能从交互式/非登录会话的 bash shell 进行访问,请使用下列命令修改
PATH
文件中的~/.bashrc
:echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc source ~/.bashrc
本地连接
以下步骤使用 sqlcmd 本地连接到新的 SQL Server 实例。
注意
密码应遵循 SQL Server 默认密码策略。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 密码可最长为 128 个字符。 使用的密码应尽可能长,尽可能复杂。
使用 SQL Server 名称 ()、用户名 (
-S
) 和密码 (-U
) 的相应参数运行 sqlcmd。 本教程中要进行本地连接,因此服务器名称为localhost
。 用户名为sa
,密码是在安装过程中为sa
帐户提供的密码。sqlcmd -S localhost -U sa -P '<password>'
注意
默认情况下,较新版本的 sqlcmd 是安全的。 有关连接加密的详细信息,请参阅 sqlcmd 实用工具(对于 Windows)和使用 sqlcmd 进行连接(对于 Linux 和 macOS)。 如果连接不成功,则可以将
-No
选项添加到 sqlcmd,以指定加密是可选的,而不是强制性的。可以在命令行上省略密码,以收到密码输入提示。
如果以后决定进行远程连接,请为
-S
参数指定计算机名称或 IP 地址,并确保防火墙上的端口 1433 已打开。如果成功,应会显示 sqlcmd 命令提示符:。
如果连接失败,先尝试诊断错误消息中所述的问题。 然后查看连接故障排除建议。
创建和查询数据
下面各部分将逐步介绍如何使用 sqlcmd 新建数据库、添加数据并运行简单查询。
有关编写 Transact-SQL 语句和查询的详细信息,请参阅教程:编写 Transact-SQL 语句。
新建数据库
以下步骤创建一个名为 TestDB
的新数据库。
在 sqlcmd 命令提示符中,粘贴以下 Transact-SQL 命令以创建测试数据库:
CREATE DATABASE TestDB;
在下一行中,编写一个查询以返回服务器上所有数据库的名称:
SELECT Name FROM sys.databases;
前两个命令不立即执行。 必须在新行中键入
GO
才能执行以前的命令:GO
插入数据
接下来创建一个新表 dbo.Inventory
,然后插入两个新行。
在 sqlcmd 命令提示符中,将上下文切换到新的 数据库:
USE TestDB;
创建名为
dbo.Inventory
的新表:CREATE TABLE dbo.Inventory ( id INT, name NVARCHAR (50), quantity INT, PRIMARY KEY (id) );
将数据插入新表:
INSERT INTO dbo.Inventory VALUES (1, 'banana', 150); INSERT INTO dbo.Inventory VALUES (2, 'orange', 154);
要执行上述命令的类型
GO
:GO
选择数据
现在,运行查询以从 dbo.Inventory
表返回数据。
通过 sqlcmd 命令提示符输入查询,以返回 表中数量大于 152 的行:
SELECT * FROM dbo.Inventory WHERE quantity > 152;
执行此命令:
GO
退出 sqlcmd 命令提示符
要结束 sqlcmd 会话,请键入 :
QUIT
性能最佳做法
在 Linux 上安装 SQL Server 后,请查看配置 Linux 和 SQL Server 以提高生产性能的最佳做法。 有关详细信息,请参阅 Linux 上的 SQL Server 的性能最佳做法和配置指南。
跨平台数据工具
除“sqlcmd”以外,还可以使用以下跨平台工具来管理 SQL Server :
工具 | 说明 |
---|---|
Azure Data Studio | 跨平台 GUI 数据库管理实用程序。 |
Visual Studio Code | 一种跨平台 GUI 代码编辑器,它使用 mssql 扩展运行 Transact-SQL 语句。 |
PowerShell Core | 基于 cmdlet 的跨平台自动化和配置工具。 |
mssql-cli | 用于运行 Transact-SQL 命令的跨平台命令行接口。 |
从 Windows 进行连接
Windows 上的 SQL Server 工具连接到 Linux 上的 SQL Server 实例,操作方式与连接到任何远程 SQL Server 实例一样。
如果有一台可以连接到 Linux 计算机的 Windows 计算机,请从运行 sqlcmd 的 Windows 命令提示符尝试执行本主题中的相同步骤。 必须使用目标 Linux 计算机名称或 IP 地址,而不是 localhost
,并确保 TCP 端口 1433 已在 SQL Server 计算机上打开。 如果从 Windows 进行连接存在任何问题,请参阅连接故障排除建议。
有关在 Windows 上运行,但连接到 Linux 上的 SQL Server 的其他工具,请参阅:
其他部署方案
有关其他安装方案,请参阅以下资源:
- 升级:了解如何升级 Linux 版 SQL Server 的现有安装
- 卸载:在 Linux 上卸载 SQL Server
- 无人参与的安装:了解如何编写无提示安装脚本
- 脱机安装:了解如何手动下载脱机安装程序包
有关常见问题的解答,请参阅 Linux 上的 SQL Server 常见问题解答。
相关内容
参与编辑 SQL 文档
你是否知道你可以自行编辑 SQL 内容? 你如果这样做,不仅可以帮助改进我们的文档,还可以获得页面贡献者的殊荣。
有关详细信息,请参阅 “编辑Microsoft Learn 文档。