创建此帖子的目的是尝试成为“如何安装 MSSQL 服务器”和“如何安装 MSSQL 服务器工具”问题的“包罗万象”的规范问答对。
我想要为 Linux 设置 MS SQL Server,以及它的工具(在服务器本身或其他系统上),以便我可以与 SQL Server 交互。我该怎么做?
答案1
本回答涵盖了为任何 16.04 系统安装 MSSQL Server 和工具。它不涵盖在系统上获取 MSSQL Server 的 Docker 解决方案。将通过 SQL Server 的 Docker 安装选项为 MSSQL Server 编写单独的回答。
这里的包中仅有几个不同的组件来自 Microsoft 存储库。
mssql-server
- 适用于 Linux 的 Microsoft SQL Server 预览版mssql-tools
-sqlcmd
等命令与 MSSQL Server 交互。
这里有一些恶意的警告:
- 所有组件都必须有 16.04;它不适用于旧版本。
- 目前,只有 64 位版本的软件包可用。
mssql-server
除非您使用 64 位系统,否则您将无法运行这些软件包,甚至可能无法使用这些工具。
以下所有命令均来自 Microsoft 建议的步骤。我不建议在遵循这些步骤之外使用其中一些命令确切地,因为这里的某些程序会引入安全风险(例如登录超级用户 shell)。
mssql-server
安装步骤(来源)
这些步骤涵盖了如何设置 Linux 公共预览版 MS SQL Server。此方法和 Docker 方法是设置 Linux 版 MSSQL Server 的两种方法。
注意事项:
- 您需要一个 64 位 MSSQL Server 系统。
- 您的系统至少需要 4GB 的 RAM 来安装 MSSQL Server。
- 你必须有 Ubuntu 16.04,目前他们的存储库服务器上没有其他版本。
mssql-server
要在 Ubuntu 上安装该软件包,请按照以下步骤操作:
进入超级用户模式。
sudo su
导入公共存储库 GPG 密钥:
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
注册 Microsoft SQL Server Ubuntu 存储库:
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
退出超级用户模式。
exit
运行以下命令安装 SQL Server:
sudo apt-get update sudo apt-get install -y mssql-server
包安装完成后,运行配置脚本并按照提示进行操作。
sudo /opt/mssql/bin/mssql-conf setup
配置完成后,验证服务是否正在运行:
systemctl status mssql-server
看:快速入门:在 Ubuntu 上安装 SQL Server 并创建数据库。
mssql-tools
安装步骤(来源)
mssql-tools
本节介绍包括命令在内的设置sqlcmd
。如果您希望在sqlcmd
Linux 上使用该命令或其他 Microsoft 实用程序与 MSSQL 服务器交互,则需要执行这些步骤。
(对于与 MSSQL 交互的其他 Python 库,或者可以与服务器交互的其他实用程序(例如 DataGrip,等等),这不是必需的,因为它们不需要包来mssql-tools
运行。)
注意事项:
- 我还没有找到适用于非 64 位系统的版本。您可能需要 64 位系统才能使用这些工具。
- 目前您只能在 16.04 上使用工具。
进入超级用户模式
sudo su
导入公共存储库 GPG 密钥:
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
注册 Microsoft Ubuntu 存储库:
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/prod.list)"
退出超级用户模式:
exit
更新源列表并运行安装命令:
sudo apt-get update sudo apt-get install mssql-tools
答案2
使用 Docker(仅限 amd64)
也可以使用 Docker 在 Ubuntu 上运行 MSSQL Server。请仔细按照以下步骤操作:
如果你使用的是 Ubuntu 14.04或任何早于 Xenial (16.04) 的版本,您将需要安装比档案提供的更新版本的 Docker。
如果是,请按照这一页。
如果没有,只需运行:
sudo apt-get install docker.io
验证您是否可以使用以下命令连接到本地 Docker 守护程序:
docker info
如果您收到如下错误
Cannot connect to the Docker daemon.
,则需要将自己添加到docker
组中:sudo usermod -a -G docker <USERNAME>
...其中
<USERNAME>
替换为您的用户名。您需要注销并重新登录以使更改生效。从 Docker Hub 拉取 MSSQL 镜像:
docker pull microsoft/mssql-server-linux
在主机上创建一个目录,用于存储来自容器的数据,并将值保存在环境变量中以方便使用:
export DIR=/var/lib/mssql sudo mkdir $DIR
启动容器:
docker run \ -d \ --name mssql \ -e 'ACCEPT_EULA=Y' \ -e 'SA_PASSWORD=<PASSWORD>' \ -p 1433:1433 \ -v $DIR:/var/opt/mssql \ microsoft/mssql-server-linux
替换
<PASSWORD>
为稍后用于身份验证的唯一值。验证容器启动是否正常:
docker ps -af name=mssql
如果
STATUS
列下显示“Up ...”STATUS
,则表示一切运行正常。但是,如果显示错误:CONTAINER ID ... STATUS ... ba79fa12fbf1 ... Exited (0) 3 seconds ago ...
...然后您可以使用它
docker logs mssql
来获取更多信息。
要从应用程序连接到容器,只需指定端口 1433。
默认情况下,容器会在您首次run
使用时启动。您可以使用以下命令停止容器:
docker stop mssql
要删除容器,请先停止它,然后运行:
docker rm mssql