在 Linux 上安装 SQL Server 命令行工具 sqlcmd 和 bcp

适用于:SQL Server - Linux

通过以下步骤安装命令行工具、Microsoft ODBC 驱动程序及其依赖项。 mssql-tools 包包含:

  • sqlcmd:命令行查询实用工具。
  • bcp:批量导入-导出实用工具。

为你的平台安装工具:

本文介绍如何安装命令行工具。 如果正在寻找有关如何使用 sqlcmdbcp 的示例,请参阅本文末尾的链接

警告

sqlcmd 和 bcp 在适用于 x64 体系结构的 mssql-tools 中可用。 有一种适用于 arm64 和 x64 环境的替代工具,即 GitHub 上的 go-sqlcmd,该工具在 Linux、macOS 和 Windows 中处于预览阶段。

在 Linux 上安装工具

通过以下步骤在 Red Hat Enterprise Linux 上安装 mssql-tools

  1. 进入超级用户模式。

    sudo su
    
  2. 下载 Microsoft Red Hat 存储库配置文件。

    curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/msprod.repo
    
  3. 退出超级用户模式。

    exit
    
  4. 如果安装了早期版本的 mssql-tools,请删除所有旧的 unixODBC 包。

    sudo yum remove mssql-tools unixODBC-utf16-devel
    
  5. 运行以下命令,以使用 unixODBC 开发人员包安装 mssql-tools

    sudo yum install mssql-tools unixODBC-devel
    

    注意

    若要将 mssql-tools 更新至最新版本,请运行以下命令:

    sudo yum check-update
    sudo yum update mssql-tools
    
  6. 可选:向 bash shell 中的 PATH 环境变量添加 /opt/mssql-tools/bin/

    要使 sqlcmd/bcp 能从登录会话的 bash shell 进行访问,请使用下列命令修改 ~/.bash_profile 文件中的 PATH

    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
    

    要使 sqlcmd/bcp 能从交互式/非登录会话的 bash shell 进行访问,请使用下列命令修改 ~/.bashrc 文件中的 PATH

    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
    source ~/.bashrc
    

在 macOS 上安装工具

macOS 上目前提供 sqlcmdbcp 的预览版。 有关详细信息,请参阅公告

如果尚未安装 Homebrew,请进行安装:

  • /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

若要为 Mac El Capitan 和 Sierra 安装工具,请使用以下命令:

# brew untap microsoft/mssql-preview if you installed the preview version
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
brew install mssql-tools
#for silent install:
#HOMEBREW_NO_ENV_FILTERING=1 ACCEPT_EULA=y brew install mssql-tools

在 Docker 上安装工具

如果在 Docker 容器中运行 SQL Server,则 SQL Server 命令行工具已包含在 SQL Server Linux 容器映像中。 如果使用交互式 bash shell 附加到正在运行的容器,则可以在本地运行这些工具。

如果使用 SQL Server 命令行工具创建容器,建议在安装命令中添加 ACCEPT_EULA=Y,以无提示方式接受 EULA 并且不中断映像创建。 在基于 Ubuntu 的映像上安装的过程中,最后一个命令示例是:

sudo ACCEPT_EULA=Y apt-get install mssql-tools unixodbc-dev

脱机安装

如果 Linux 计算机不能访问之前部分中使用的在线存储库,则可以直接下载包文件。 这些包位于 Microsoft 存储库中,网址为 https://packages.microsoft.com

提示

如果通过之前部分中的步骤成功安装了包,则无需下载或者手动安装以下包。 这仅适用于脱机的情况。

  1. 首先,找到并复制适用于你的 Linux 发行版的 mssql-tools 包。 对于 Red Hat 8.0,它位于 https://packages.microsoft.com/rhel/8/prod

  2. 此外,找到并复制 msodbcsql 包,它是一个依赖项。 msodbcsql 包在 unixODBC-devel 上还有一个依赖项。 对于 Red Hat,msodbcsql 包位于 https://packages.microsoft.com/rhel/8/prod

  3. 将下载的包移至 Linux 计算机。 如果使用了不同的计算机下载包,则可以通过“scp”命令将包移至你的 Linux 计算机。

  4. 安装包:安装 mssql-toolsmsodbc 包。 如果遇到任何依赖项错误,请忽略,直到出现下一步操作。 将 <version> 替换为正确的版本:

    sudo yum localinstall msodbcsql-<version>.rpm
    sudo yum localinstall mssql-tools-<version>.rpm
    
  5. 解决缺少依赖项的问题:此时可能会出现缺少依赖项的情况。 如果没有,可以跳过此步骤。 在某些情况下,必须手动查找并安装这些依赖项。

    可通过以下命令检查必需的依赖项。 将 <version> 替换为正确的版本:

    rpm -qpR msodbcsql-<version>.rpm
    rpm -qpR mssql-tools-<version>.rpm
    

后续步骤

有关如何使用 sqlcmd 连接到 SQL Server 并创建数据库的示例,请参阅以下快速入门之一:

有关如何使用 bcp 批量导入和导出数据的示例,请参阅将数据批量复制到 Linux 上的 SQL Server

参与编辑 SQL 文档

你是否知道你可以自行编辑 SQL 内容? 你如果这样做,不仅可以帮助改进我们的文档,还可以获得页面贡献者的殊荣。

有关详细信息,请参阅如何参与 SQL Server 文档编辑