如何为 ubuntu 18.04 LTS 安装 MS SQL?

Sid*_*dey 8 mssql 18.04

我在互联网上查了一下,但所有这些安装步骤都是关于 16.04 版本的。它在 18.04 上可用吗?如果是,如何?

Dav*_*als 9

Microsoft 尚未提供 18.04 的官方 mssql-server(05-12-2018),仅用于测试您可以尝试解决方法(来自我)。

在 Ubuntu 上安装 Microsoft 的 SQL Server (mssql) 的解决方法

警告:仅用于测试

  1. https://packages.microsoft.com/ubuntu/16.04/mssql-server-2017/pool/main/m/mssql-server/下载最新包 mssql-server_14.0.3025.34-3_amd64.deb

  2. 更改目录

    cd ${HOME} && mkdir -p tmp/mssql/newpkg/DEBIAN/ && cd tmp/mssql
    wget https://packages.microsoft.com/ubuntu/16.04/mssql-server-2017/pool/main/m/mssql-server/mssql-server_14.0.3025.34-3_amd64.deb
    
    Run Code Online (Sandbox Code Playgroud)
  3. 打开包装

    dpkg-deb -x mssql-server_14.0.3025.34-3_amd64.deb newpkg/
    dpkg-deb -e mssql-server_14.0.3025.34-3_amd64.deb newpkg/DEBIAN/
    
    Run Code Online (Sandbox Code Playgroud)
  4. 调整

    sed -i -e 's#openssl (<= 1.1.0)#openssl (<= 1.1.1)#g' newpkg/DEBIAN/control
    cat newpkg/DEBIAN/control | grep openssl
    
    Run Code Online (Sandbox Code Playgroud)
  5. 重新包装

    dpkg-deb -b newpkg/ 18.04-mssql-server_14.0.3025.34-3_amd64_.deb
    
    Run Code Online (Sandbox Code Playgroud)
  6. 首先尝试,这将因依赖项而失败

    sudo dpkg -i 18.04-mssql-server_14.0.3025.34-3_amd64_.deb
    
    Run Code Online (Sandbox Code Playgroud)
  7. 安装依赖

    sudo apt install -f
    
    Run Code Online (Sandbox Code Playgroud)
  8. 第二次尝试,应该这样做

    sudo dpkg -i 18.04-mssql-server_14.0.3025.34-3_amd64_.deb
    
    Run Code Online (Sandbox Code Playgroud)
  9. 按照包中的消息设置 mssql 服务器

故障排除

数据库目录/var/opt/mssql不应放在 zfs 数据集上,如果您使用的是 zfs,请为其创建一个 zvol 并格式化为 ext4/xfs。

错误:“转储收集线程 [4404] 命中异常 [6]。正在退出。”
修复:sudo usermod -a -G disk mssql
原因:mssql 用户无法访问 zvol。

参考:


小智 5

因此,Ubuntu 18.04ca-certificatesopenssl提供的版本实际上适用于mssql-server. 大概它是拒绝的,openssh因为 18.04 的版本在1.1.0g-2ubuntu4技术上比mssql-server要求的“更高” <=1.1.0(我认为他们应该使用,<1.1.1因为这仍然将您锁定到一个1.1.0变体,同时允许特定于发行版的软件包版本,这是您绝对应该期待的遇到,但这既不在这里也不在那里。)

修复

  1. 安装依赖
    sudo apt-get install libunwind8 libnuma1 libc6 adduser libjemalloc1 libc++1 gdb debconf libcurl3 主机名 openssl python libgssapi-krb5-2 libsss-nss-idmap0 gawk sed
    (我完全意识到您可能已经安装了其中的大部分,这些只是声称的所有依赖项。)
  2. 下载包
    apt-get 下载 mssql-server
  3. 强制安装
    须藤 dpkg --force-depends -i mssql-server_14.0.3025.34-3.deb
  4. 删除下载的 .deb 文件
    rm mssql-server_14.0.3025.34-3_amd64.deb
  5. 此时,运行任何 apt 命令将导致它(无害地)抱怨 mssql-server 具有未满足的依赖项并指示您运行:sudo apt --fix-broken install
    不要这样做。你会失去你刚才所做的一切。

    如果您真的希望该错误消失,请继续执行第 5 步,否则只需忽略它即可完成。

  6. 说服 dpkg 一切都好
    1. sudo nano /var/lib/dpkg/status
       你喜欢的编辑器也不错
    2. 找到 mssql-server 的条目(对于 nano,它是 Ctrl-W,而不是 Ctrl-F)
    3. 将依赖行从 更改

      ...hostname, openssl (>= 1.0.1), openssl (<= 1.1.0), python (<= 2.7.0)...



      ...hostname, openssl (>= 1.0.1), openssl (< 1.1.1), python (<= 2.7.0)...

如果你强行安装了旧版本的ca-certificatesopensslgetmssql-server安装,你可以通过apt-get install ca-certificates openssl. 这将删除 mssql-server(但您的配置和数据库应该保持不变)。然后你可以按照我的指示去做。

这应该可以避免您不得不处理重新包装东西的麻烦。您正在交易它以在 dpkg 上玩弄技巧,但这样做可能会(我承认这是基于没有研究的)在官方 18.04 软件包出现时更容易升级,因为您避免创建和使用非官方软件包并升级到官方包会自动清理我们所做的更改。


小智 5

微软已经为 Linux 更新了 SQL Server 2017,现在它可以安装在 Ubuntu 18.04 中,但他们建议仅用于开发。

有关更多信息,请查看以下 Microsoft 博客文章: 在 Ubuntu 18.04 LTS 上为 Linux 安装 SQL Server 2017


Win*_*nix 2

Microsoft 的 SQL 网站上次更新于 2018 年 4 月,显示 Ubuntu 16.04 是当前最受支持的版本。我会等到 2018 年 7 月 26 日 Ubuntu 18.04.1 LTS 发布时才能期待微软的支持。

您可以尝试使用已经支持 Ubuntu 18.04的免费版本 MySQL,而不用支付 Microsoft 的 SQL 费用。

  • 如果您需要 MSSQL,因为您使用的其他软件依赖于它,那么安装 MySQL 不会给您带来任何好处。 (2认同)