如何在16.04上为Linux安装MSSQL Server和/或工具?


14

创建此帖子的目的是,使它们成为“如何安装MSSQL Server”和“如何安装MSSQL Server工具”问题的“通用”规范问题/答案对。

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


1
请注意,我有一个通过16.04可用的MSSQL服务器,以及该服务器上的工具。我使用Windows计算机上的MSSQL Management Studio来管理所有内容,并使用DataGrip和其他Python界面来实际使用MSSQL Server进行管理。
托马斯·沃德

Answers:


18

此答案涵盖为任何16.04系统安装MSSQL Server和工具。它没有涵盖在系统上获取MSSQL Server的Docker解决方案。通过SQL Server的Docker安装选项,将为MSSQL Server写一个单独的答案。

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

  1. mssql-server -适用于Linux的Microsoft SQL Server预览版
  2. mssql-tools- sqlcmd等命令与MSSQL Server进行交互。

这里有一些邪恶的警告:

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

下面的所有命令均来自Microsoft建议的步骤。由于此处某些过程引入了安全风险(例如登录到超级用户外壳程序),因此我不建议在完全按照这些步骤操作之前使用其中一些命令。


mssql-server安装步骤(来源

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

注意事项:

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

mssql-server在Ubuntu上安装软件包,请按照以下步骤操作:

  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. 配置完成后,请验证服务是否正在运行:

    systemctl status mssql-server
    

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


mssql-tools安装步骤(

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

(对于其他与MSSQL交互的Python库或不需要与mssql-toolspacakge进行操作的其他实用程序(例如可以与服务器交互的DataGrip等),则不需要这样做。)

注意事项:

  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解决方案中提到的那样-在这里也应该说mssql服务器只能在amd64架构上工作(与arm或arm64不同,有些云提供了此功能)。
userfuser

1
值得注意的是,该名称sqlservr-setup已重命名为mssql-conf setup
汤姆(Tom)

它说在您的sourceSQL中需要2GB内存,而不是您提到的4GB Ram。
Offir Pe'er

9

使用Docker(仅限amd64)

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

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

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

    如果没有,只需运行:

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

    docker info
    

    如果收到诸如之类的错误Cannot connect to the Docker daemon.,则需要将自己添加到该docker组:

    sudo usermod -a -G docker <USERNAME>
    

    ... <USERNAME>用您的用户名替换。您需要注销然后重新登录,以使更改生效。

  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=<PASSWORD>' \
        -p 1433:1433 \
        -v $DIR:/var/opt/mssql \
        microsoft/mssql-server-linux
    

    替换<PASSWORD>为将在以后用于身份验证的唯一值。

  6. 验证容器已启动且没有错误:

    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

在18.04下测试。谢谢,它有效并且非常快。
乔·埃弗特

用户名:sa,密码至少应为8个字符,数字和大写和小写字母。否则,您将无法连接。此处的更多信息:hub.docker.com/r/microsoft/mssql-server-linux
Joe
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.