High Performance Sql Server On Linux-Ubuntu-Deploy on Any Cloud- GCP, AWS or Azure

You must have a Ubuntu machine with at least 3.25 GB of memory.

To install Ubuntu on your own machine, go to  http://www.ubuntu.com/download/server.

 

 

 

sql server on ubuntuFor other system requirements, see System requirements for SQL Server on Linux.

Install SQL Server

To configure SQL Server on Ubuntu, run the following commands in a terminal to install the mssql-server package.

Import the public repository GPG keys:

  1. bash
    curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
  2. Register the Microsoft SQL Server Ubuntu repository:
    bash
    sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
  3. Run the following commands to install SQL Server:
    bash
    sudo apt-get update
    sudo apt-get install -y mssql-server
  4. 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
  5. Once the configuration is done, verify that the service is running:
    bash
    systemctl status mssql-server
  6. 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.

  1. Import the public repository GPG keys:
    bash
    curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
  2. Register the Microsoft Ubuntu repository:
    bash
    sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list)"
  3. Update the sources list and run the installation command with the unixODBC developer package:
    bash
    sudo apt-get update
    sudo apt-get install -y mssql-tools unixodbc-dev
  4. 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:
    bash
    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
    source ~/.bashrc

Connect locally

The following steps use sqlcmd to locally connect to your new SQL Server instance.

  1. 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 SA and the password is the one you provided for the SA account during setup.
    bash
    sqlcmd -S localhost -U SA -P '<YourPassword>'
  2. If successful, you should get to a sqlcmd command prompt: 1>.
  3. 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.

  1. From the sqlcmd command prompt, paste the following Transact-SQL command to create a test database:
    SQL
    CREATE DATABASE TestDB
  2. 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:

    SQL
    GO

Insert data

Next create a new table, Inventory, and insert two new rows.

  1. From the sqlcmd command prompt, switch context to the new TestDB database:
    SQL
    USE TestDB
  2. Create new table named Inventory:
    SQL
    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
  3. Insert data into the new table:
    SQL
    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
  4. Type GO to execute the previous commands:
    SQL
    GO

Select data

Now, run a query to return data from the Inventory table.

  1. From the sqlcmd command prompt, enter a query that returns rows from the Inventory table where the quantity is greater than 152:
    SQL
    SELECT * FROM Inventory WHERE quantity > 152;
  2. Execute the command:
    SQL
    GO

Exit the sqlcmd command prompt

To end your sqlcmd session, type QUIT:

SQL
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:

  • SQL Server Management Studio (SSMS)
  • Windows PowerShell
  • SQL Server Data Tools (SSDT)