快速入门:安装 SQL Server 并在 Ubuntu 上创建数据库
适用于: SQL Server(所有支持的版本) - Linux
本快速入门介绍如何在 Ubuntu 18.04 上安装 SQL Server 2019。 然后使用 sqlcmd 进行连接,创建第一个数据库并运行查询 。
提示
本教程需要用户输入和 Internet 连接。 如果对无人参与或脱机安装过程感兴趣,请参阅 Linux 上的 SQL Server 的安装指南。 有关受支持平台的列表,请参阅发行说明。
先决条件
必须有内存至少为 2GB 的 Ubuntu 16.04 或 18.04 计算机。
要在自己的计算机上安装 Ubuntu 18.04,请转到 http://releases.ubuntu.com/bionic/。 还可以在 Azure 中创建 Ubuntu 虚拟机。 请参阅使用 Azure CLI 创建和管理 Linux VM。
备注
目前,不支持将适用于 Windows 10 的 Linux 的 Windows 子系统作为安装目标。
有关其他系统要求,请参阅 Linux 上的 SQL Server 的系统要求。
安装 SQL Server
备注
以下用于 SQL Server 2019 的命令指向 Ubuntu 18.04 存储库。 如果使用的是 Ubuntu 16.04,请将以下路径更改为 /ubuntu/16.04/
而不是 /ubuntu/18.04/
。
要在 Ubuntu 上配置 SQL Server,请在终端中运行以下命令以安装 mssql-server 包 。
-
导入公共存储库 GPG 密钥:
Bashwget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
-
为 SQL Server 2019 注册 Microsoft SQL Server Ubuntu 存储库:
Bashsudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2019.list)"
-
运行以下命令以安装 SQL Server:
Bashsudo apt-get update sudo apt-get install -y mssql-server
-
包安装完成后,运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。
Bashsudo /opt/mssql/bin/mssql-conf setup
备注
请确保为 SA 帐户指定强密码(最少 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号)。
-
完成配置后,验证服务是否正在运行:
Bashsystemctl status mssql-server --no-pager
-
如果计划远程连接,可能还需要在防火墙上打开 SQL Server TCP 端口(默认值为 1433)。
此时,SQL Server 2019 已在 Ubuntu 计算机上运行,随时可以使用!
安装 SQL Server 命令行工具
若要创建数据库,则需要使用可在 SQL Server 上运行 Transact-SQL 语句的工具进行连接。 以下步骤将安装 SQL Server 命令行工具:sqlcmd 和 bcp。
通过以下步骤在 Ubuntu 上安装 mssql-tools。
-
导入公共存储库 GPG 密钥。
Bashcurl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
-
注册 Microsoft Ubuntu 存储库。
Bashcurl https://packages.microsoft.com/config/ubuntu/18.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
-
更新源列表,并使用 unixODBC 开发人员包运行安装命令。 有关详细信息,请参阅安装 Microsoft ODBC Driver for SQL Server (Linux)。
Bashsudo apt-get update sudo apt-get install mssql-tools unixodbc-dev
备注
若要将 mssql-tools 更新至最新版本,请运行以下命令 :
Bashsudo apt-get update sudo apt-get install mssql-tools
-
可选:向 bash shell 中的 PATH 环境变量添加
/opt/mssql-tools/bin/
。要使 sqlcmd/bcp 能从登陆会话的 bash shell 进行访问,请使用下列命令修改 ~/.bash_profile 文件中的 PATH :
Bashecho 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
要使 sqlcmd/bcp 能从交互式/非登录会话的 bash shell 进行访问,请使用下列命令修改 ~/.bashrc 文件中的 PATH :
Bashecho 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc
本地连接
以下步骤使用 sqlcmd 本地连接到新的 SQL Server 实例。
-
使用 SQL Server 名称 (-S),用户名 (-U) 和密码 (-P) 的参数运行 sqlcmd 。 在本教程中,用户进行本地连接,因此服务器名称为
localhost
。 用户名为SA
,密码是在安装过程中为 SA 帐户提供的密码。Bashsqlcmd -S localhost -U SA -P '<YourPassword>'
提示
可以在命令行上省略密码,以收到密码输入提示。
提示
如果以后决定进行远程连接,请指定 -S 参数的计算机名称或 IP 地址,并确保防火墙上的端口 1433 已打开。
-
如果成功,应会显示 sqlcmd 命令提示符:
1>
。 -
如果连接失败,先尝试诊断错误消息中所述的问题。 然后查看连接故障排除建议。
创建和查询数据
下面各部分将逐步介绍如何使用 sqlcmd 新建数据库、添加数据并运行简单查询。
新建数据库
以下步骤创建一个名为 TestDB
的新数据库。
-
在 sqlcmd 命令提示符中,粘贴以下 Transact-SQL 命令以创建测试数据库:
SQLCREATE DATABASE TestDB
-
在下一行中,编写一个查询以返回服务器上所有数据库的名称:
SQLSELECT Name from sys.Databases
-
前两个命令没有立即执行。 必须在新行中键入
GO
才能执行以前的命令:SQLGO
提示
若要详细了解如何编写 Transact-SQL 语句和查询,请参阅教程:编写 Transact-SQL 语句。
插入数据
接下来创建一个新表 Inventory
,然后插入两个新行。
-
在 sqlcmd 命令提示符中,将上下文切换到新的
TestDB
数据库:SQLUSE TestDB
-
创建名为
Inventory
的新表:SQLCREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
-
将数据插入新表:
SQLINSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
-
要执行上述命令的类型
GO
:SQLGO
选择数据
现在,运行查询以从 Inventory
表返回数据。
-
通过 sqlcmd 命令提示符输入查询,以返回
Inventory
表中数量大于 152 的行:SQLSELECT * FROM Inventory WHERE quantity > 152;
-
执行此命令:
SQLGO
退出 sqlcmd 命令提示符
要结束 sqlcmd 会话,请键入 QUIT
:
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 已打开。 如果从 Windows 进行连接存在任何问题,请参阅连接故障排除建议。
有关在 Windows 上运行,但连接到 Linux 上的 SQL Server 的其他工具,请参阅:
其他部署方案
有关其他安装方案,请参阅以下资源:
- 升级:了解如何升级 Linux 版 SQL Server 的现有安装
- 卸载:在 Linux 上卸载 SQL Server
- 无人参与的安装:了解如何编写无提示安装脚本
- 脱机安装:了解如何手动下载脱机安装程序包
提示
有关常见问题的解答,请参阅 Linux 上的 SQL Server 常见问题解答。