在 Linux 中获取“sqlcmd sqlcmd: command not found”?

Eva*_*oll 9 sql-server ubuntu sql-server-2017

每当我跑步时,sqlcmd我都会收到“找不到命令”

sqlcmd -S localhost -U SA -P '<YourPassword>'
sqlcmd: command not found
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Eva*_*oll 15

有两种方法可以解决这个问题。

  1. 手册中提倡的用户特定方法:将目录添加到环境变量中PATH
  2. 系统范围的方法:将可执行文件符号链接到路径中已有的目录。

用户特定方法

您可以使用教程推荐的方法。教程说明如下:

可选:在 bash shell 中添加/opt/mssql-tools/bin/PATH环境变量。

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

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

为了使SQLCMD / BCP从bash shell的交互式/非登录会话访问,修改PATH的〜/ .bashrc文件,使用下面的命令:

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

这有效,但它仅影响该用户的会话,并且仅当他们使用 bash 时。

全系统方法

将 MS SQL 工具链接到所有用户都可以访问的位置:

sudo ln -s /opt/mssql-tools/bin/* /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)

这可能在他们的postinstscript 中,这对于安装可选包很有意义。

这两种方法都符合File system Hierarchy Standard,其中指出:

用户要调用的程序必须位于目录/opt/<package>/bin