In this quick start tutorial, you first install SQL Server 2017 RC2 on SUSE Linux Enterprise Server (SLES) v12 SP2. Then connect with sqlcmd to create your first database and run queries.
You must have a SLES v12 SP2 machine with at least 3.25 GB of memory. The file system must be XFS or EXT4. Other file systems, such as BTRFS, are unsupported.
To install SUSE Linux Enterprise Server on your own machine, go to https://www.suse.com/products/server. You can also create SLES virtual machines in Azure. See Create and Manage Linux VMs with the Azure CLI, and use
--image SLES in the call to
az vm create.
For other system requirements, see System requirements for SQL Server on Linux.
Install SQL Server
To configure SQL Server on SLES, run the following commands in a terminal to install the mssql-server package:
Download the Microsoft SQL Server SLES repository configuration file:
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/12/mssql-server.repo sudo zypper --gpg-auto-import-keys refresh
Run the following commands to install SQL Server:
sudo zypper 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.
sudo /opt/mssql/bin/mssql-conf setup
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).
When installing RC2, no purchased licenses are required to try any of the editions. Because it is a release candidate, the following message appears regardless of the edition you select:
This is an evaluation version. There are  days left in the evaluation period.
This message does not reflect the edition you selected. It relates to the preview period for RC2.
Once the configuration is done, verify that the service is running:
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. If you are using the SuSE firewall, you need to edit the /etc/sysconfig/SuSEfirewall2 configuration file. Modify the FW_SERVICES_EXT_TCP entry to include the SQL Server port number.
At this point, SQL Server is running on your SLES machine and is ready to use!
Install the SQL Server command-line tools
Add the Microsoft SQL Server repository to Zypper.
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/12/prod.repo sudo zypper --gpg-auto-import-keys refresh
Install mssql-tools with the unixODBC developer package.
sudo zypper install -y mssql-tools unixODBC-devel
For convenience, add
/opt/mssql-tools/bin/to your PATH environment variable. This enables you to run the tools without specifying the full path. Run the following commands to modify the PATH for both login sessions and interactive/non-login sessions:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc
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 is
SAand the password is the one you provided for the SA account during setup.
sqlcmd -S localhost -U SA -P '<YourPassword>'
You can omit the password on the command line to be prompted to enter it.
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:
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
From the sqlcmd command prompt, paste the following Transact-SQL command to create a test database:
CREATE DATABASE TestDB
On the next line, write a query to return the name of all of the databases on your server:
SELECT Name from sys.Databases
The previous two commands were not executed immediately. You must type
GOon a new line to execute the previous commands:
Next create a new table,
Inventory, and insert two new rows.
From the sqlcmd command prompt, switch context to the new
Create new table named
CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
Insert data into the new table:
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
GOto execute the previous commands:
Now, run a query to return data from the
From the sqlcmd command prompt, enter a query that returns rows from the
Inventorytable where the quantity is greater than 152:
SELECT * FROM Inventory WHERE quantity > 152;
Execute the command:
Exit the sqlcmd command prompt
To end your sqlcmd session, type
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:
For other installation scenarios, see the following resources:
|Upgrade||Learn how to upgrade an existing installation of SQL Server on Linux|
|Uninstall||Uninstall SQL Server on Linux|
|Unattended install||Learn how to script the installation without prompts|
|Offline install||Learn how to manually download the packages for offline installation|
To learn more about writing Transact-SQL statements and queries, see Tutorial: Writing Transact-SQL Statements.