如何在16.04上安装MSSQL Server和/或Linux for Tools?

这篇文章的创建是为了尝试成为’如何安装MSSQL服务器’和’我如何安装MSSQL服务器工具’问题的“捕获所有”规范问题/答案对。

我希望设置MS SQL Server for Linux,很可能是它的工具(在服务器本身或其他系统上),所以我可以与SQL Server进行交互。 我该怎么做呢?

这个答案涵盖了为任何16.04系统安装MSSQL Server和Tools。 它没有涉及在系统上获取MSSQL Server的Docker解决方案。 将通过SQL Server的Docker安装选项为MSSQL Server编写单独的答案。

仅来自Microsoft存储库的软件包中有几个不同的组件。

  1. mssql-server – 用于Linux预览的Microsoft SQL Server
  2. mssql-toolssqlcmd等命令与MSSQL Server交互。

这里有一些邪恶的警告:

  1. 所有组件必须为16.04; 它不适用于旧版本。
  2. 目前,只有64位版本的软件包可供使用。 除非您使用的是64位系统,否则您将无法运行mssql-server ,也可能无法运行这些工具。

以下所有命令均来自Microsoft建议的步骤。 由于此处介绍的某些过程(例如登录到超级用户shell)存在安全风险的性质,因此我不建议在完全遵循这些步骤之外使用其中一些命令。


mssql-server安装步骤( 来源 )

这些步骤包括设置MS SQL Server for Linux Public Preview。 这和Docker方法是设置MSSQL Server for Linux的两种方法。

注意事项:

  1. 您需要为MSSQL Server安装64位系统。
  2. 系统上至少需要4GB的RAM才能安装MSSQL Server。
  3. 必须拥有Ubuntu 16.04,其存储库服务器上目前没有其他版本。

要在Ubuntu上安装mssql-server Package,请按照下列步骤操作:

  1. 进入超级用户模式。

     sudo su 
  2. 导入公用存储库GPG密钥:

     curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - 
  3. 注册Microsoft SQL Server Ubuntu存储库:

     sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)" 
  4. 退出超级用户模式。

     exit 
  5. 运行以下命令以安装SQL Server:

     sudo apt-get update sudo apt-get install -y mssql-server 
  6. 程序包安装完成后,运行配置脚本并按照提示进行操作。

     sudo /opt/mssql/bin/mssql-conf setup 
  7. 配置完成后,validation服务是否正在运行:

     systemctl status mssql-server 

请参阅: 快速入门:安装SQL Server并在Ubuntu上创建数据库 。


mssql-tools安装步骤( 源码 )

本节介绍如何设置包含sqlcmd命令的mssql-tools 。 对于希望在Linux上使用sqlcmd命令或其他Microsoft发起的实用程序与MSSQL Server进行交互的任何系统,都需要执行这些步骤。

(其他Python库不需要这与MSSQL交互,或其他实用程序,如DataGrip,它可以与服务器等交互,不需要mssql-tools pacakge来操作。)

注意事项:

  1. 我没有为非64位系统找到这个版本。 您可能需要64位系统才能使这些工具正常工作。
  2. 您目前只能使用16.04上的工具。
  1. 进入超级用户模式

     sudo su 
  2. 导入公用存储库GPG密钥:

     curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - 
  3. 注册Microsoft Ubuntu存储库:

     sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/prod.list)" 
  4. 退出超级用户模式:

     exit 
  5. 更新源列表并运行安装命令:

     sudo apt-get update sudo apt-get install mssql-tools 

使用Docker(仅限amd64)

也可以使用Docker在Ubuntu上运行MSSQL Server。 这可以通过以下步骤仔细完成:

  1. 如果您使用的是Ubuntu 14.04 或Xenial(16.04)之前的任何其他版本 ,则需要安装比归档文件提供的更新版本的Docker。

    如果是,请按照此页面上的说明进行操作。

    如果没有,只需运行:

     sudo apt-get install docker.io 
  2. validation您是否可以使用以下命令连接到本地Docker守护程序:

     docker info 

    如果收到错误,例如Cannot connect to the Docker daemon. ,您需要将自己添加到docker组:

     sudo usermod -a -G docker  

    …其中被替换为您的用户名。 您需要注销并重新登录才能使更改生效。

  3. 从Docker Hub中提取MSSQL映像:

     docker pull microsoft/mssql-server-linux 
  4. 在主机上创建一个目录,该目录将存储来自容器的数据,并将值保存在环境变量中以方便:

     export DIR=/var/lib/mssql sudo mkdir $DIR 
  5. 启动容器:

     docker run \ -d \ --name mssql \ -e 'ACCEPT_EULA=Y' \ -e 'SA_PASSWORD=' \ -p 1433:1433 \ -v $DIR:/var/opt/mssql \ microsoft/mssql-server-linux 

    替换为稍后将用于身份validation的唯一值。

  6. validation容器是否已启动且没有错误:

     docker ps -af name=mssql 

    如果STATUS列在STATUS列下显示“Up …”,则表示一切正常运行。 但是,如果显示错误:

     CONTAINER ID ... STATUS ... ba79fa12fbf1 ... Exited (0) 3 seconds ago ... 

    …然后你可以使用docker logs mssql来获取更多信息。

要从应用程序连接到容器,只需指定端口1433。

默认情况下,首次run时会启动容器。 您可以使用以下命令停止容器:

 docker stop mssql 

要删除容器,请先将其停止,然后运行:

 docker rm mssql