Install SQL Server
To configure SQL Server on Ubuntu, run the following commands in a terminal to install the mssql-server package.
Important
If you have previously installed a CTP or RC release of SQL Server 2017, you must first remove the old repository before registering one of the GA repositories. For more information, see Change repositories from the preview repository to the GA repository.
- Import the public repository GPG keys:
bash
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
- Register the Microsoft SQL Server Ubuntu repository:
bash
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
Note
This is the Cumulative Update (CU) repository. For more information about your repository options and their differences, see Configure repositories for SQL Server on Linux.
- Run the following commands to install SQL Server:
bash
sudo apt-get update sudo apt-get install -y mssql-server
- After the package installation finishes, run mssql-conf setup and follow the prompts to set the SA password and choose your edition.
bash
sudo /opt/mssql/bin/mssql-conf setup
Tip
If you are trying SQL Server 2017 in this tutorial, the following editions are freely licensed: Evaluation, Developer, and Express.
Note
Make sure to specify a strong password for the SA account (Minimum length 8 characters, including uppercase and lowercase letters, base 10 digits and/or non-alphanumeric symbols).
- Once the configuration is done, verify that the service is running:
bash
systemctl status mssql-server
- If you plan to connect remotely, you might also need to open the SQL Server TCP port (default 1433) on your firewall.
At this point, SQL Server is running on your Ubuntu machine and is ready to use!
Install the SQL Server command-line tools
To create a database, you need to connect with a tool that can run Transact-SQL statements on the SQL Server. The following steps install the SQL Server command-line tools: sqlcmd and bcp.
Use the following steps to install the mssql-tools on Ubuntu.
- Import the public repository GPG keys.
bash
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
- Register the Microsoft Ubuntu repository.
bash
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
- Update the sources list and run the installation command with the unixODBC developer package.
bash
sudo apt-get update sudo apt-get install mssql-tools unixodbc-dev
Note
To update to the latest version of mssql-tools run the following commands:
bashsudo apt-get update sudo apt-get install mssql-tools
- 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:
bashecho '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:
bashecho 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc
Tip
Sqlcmd is just one tool for connecting to SQL Server to run queries and perform management and development tasks. Other tools include:
Connect locally
The following steps use sqlcmd to locally connect to your new SQL Server instance.
- Run sqlcmd with parameters for your SQL Server name (-S), the user name (-U), and the password (-P). In this tutorial, you are connecting locally, so the server name is
localhost
. The user name isSA
and the password is the one you provided for the SA account during setup.bashsqlcmd -S localhost -U SA -P '<YourPassword>'
Tip
You can omit the password on the command line to be prompted to enter it.
Tip
If you later decide to connect remotely, specify the machine name or IP address for the -S parameter, and make sure port 1433 is open on your firewall.
- If successful, you should get to a sqlcmd command prompt:
1>
. - If you get a connection failure, first attempt to diagnose the problem from the error message. Then review the connection troubleshooting recommendations.
Create and query data
The following sections walk you through using sqlcmd to create a new database, add data, and run a simple query.
Create a new database
The following steps create a new database named TestDB
.
- From the sqlcmd command prompt, paste the following Transact-SQL command to create a test database:
SQL
CREATE DATABASE TestDB
- On the next line, write a query to return the name of all of the databases on your server:
SQL
SELECT Name from sys.Databases
- The previous two commands were not executed immediately. You must type
GO
on a new line to execute the previous commands:SQLGO
Insert data
Next create a new table, Inventory
, and insert two new rows.
- From the sqlcmd command prompt, switch context to the new
TestDB
database:SQLUSE TestDB
- Create new table named
Inventory
:SQLCREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
- Insert data into the new table:
SQL
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
- Type
GO
to execute the previous commands:SQLGO
Select data
Now, run a query to return data from the Inventory
table.
- From the sqlcmd command prompt, enter a query that returns rows from the
Inventory
table where the quantity is greater than 152:SQLSELECT * FROM Inventory WHERE quantity > 152;
- Execute the command:
SQL
GO
Exit the sqlcmd command prompt
To end your sqlcmd session, type QUIT
:
QUIT
Connect from Windows
SQL Server tools on Windows connect to SQL Server instances on Linux in the same way they would connect to any remote SQL Server instance.
If you have a Windows machine that can connect to your Linux machine, try the same steps in this topic from a Windows command-prompt running sqlcmd. Just verify that you use the target Linux machine name or IP address rather than localhost, and make sure that TCP port 1433 is open. If you have any problems connecting from Windows, see connection troubleshooting recommendations.
For other tools that run on Windows but connect to SQL Server on Linux, see: