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