8

Whenever I run sqlcmd I get "command not found"

sqlcmd -S localhost -U SA -P '<YourPassword>'
sqlcmd: command not found

How can I resolve that?

0
14

There are two methods of resolving this.

  1. User-specific method advocated in the manual: add the directory to the environmental variable PATH.
  2. System-wide method: symlink the executable to a directory already in the path.

User-specific Method

You can use the tutorial's recommended method. The tutorial states the following:

Optional: Add /opt/mssql-tools/bin/ to your PATH environment variable in a bash shell.

To make sqlcmd/bcp accessible from the bash shell for login sessions, modify your PATH in the ~/.bash_profile file with the following command:

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

To make sqlcmd/bcp accessible from the bash shell for interactive/non-login sessions, modify the PATH in the ~/.bashrc file with the following command:

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

This works, but it only affects that user's sessions, and only if they use bash.

System-wide Method

Link the MS SQL tools into a location accessible to all users:

sudo ln -s /opt/mssql-tools/bin/* /usr/local/bin/

This could be in their postinst script, which would make sense for installing an optional package.

Both methods are compliant with the File system Hierarchy Standard, which states:

Programs to be invoked by users must be located in the directory /opt/<package>/bin

1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.