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

适用于:SQL Server - Linux

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

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

为你的平台安装工具:

本文介绍如何安装命令行工具。 如果正在寻找有关如何使用 sqlcmd 或 bcp 的示例,请参阅本文末尾的相关内容

重要

sqlcmdbcp 在适用于 x64arm64 体系结构的 mssql-tools18 中可用。 有关跨 Linux、macOS 和 Windows 的新式替代方法,请参阅 go-sqlcmd 实用工具

在 Linux 上安装工具

这些说明适用于安装 Microsoft ODBC 18 包。 对于以前的版本,请参阅安装 Microsoft ODBC Driver for SQL Server (Linux)

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

  1. 下载 Microsoft Red Hat 存储库配置文件。

    • 对于 Red Hat 9,请使用以下命令:

      curl https://packages.microsoft.com/config/rhel/9/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
      
    • 对于 Red Hat 8,请使用以下命令:

      curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
      
    • 对于 Red Hat 7,请使用以下命令:

      curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
      
  2. 如果安装了早期版本的 mssql-tools,请删除所有旧的 unixODBC 包。

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

    sudo yum install -y mssql-tools18 unixODBC-devel
    

    注意

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

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

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

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

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

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

在 macOS 上安装工具

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

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

若要安装适用于 macOS El Capitan 及更高版本的工具,请使用以下命令:

# 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-tools18

在 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-tools18 unixodbc-dev

脱机安装

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

提示

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

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

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

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

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

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

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

    rpm -qpR msodbcsql18-<version>.rpm
    rpm -qpR mssql-tools18-<version>.rpm
    

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

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

参与编辑 SQL 文档

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

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