How to Install SQL Server in RHEL, Rocky Linux and AlmaLinux

On March 7, 2016, Microsoft announced the introduction of the MS SQL server in Linux systems. The goal was to deliver more flexibility for users and to do away with vendor lock-in with the aim of accelerating the adoption of the SQL database server. If you didn’t know already, MS SQL is a relational database server developed by Microsoft.

The current stable version is MS SQL 2019, which was released back in November 2019. The SQL Server is supported on RHEL, SUSE, Ubuntu, and Docker image.

In this guide, we will walk you through the installation of Microsoft SQL Server on RHEL, CentOS, Rocky Linux, and AlmaLinux.

Prerequisites

You must have an RHEL-based Linux distribution with at least 2 GB of memory and 10 GB of hard disk space.

Step 1: Add the Microsoft SQL Server Repository

The first step is to configure a Microsoft SQL Server repository. The repository retrieves the mssql-server, database engine packages, and other SQL server packages.

There are 2 broad categories of repositories: Cumulative and GDR.

  • Cumulative Updates – The Cumulative Updates (CU) repository comprises the packages for base SQL server release, enhancements, and bug fixes since the release. These are specific to a release (for example SQL Server 2019) and are released on specific cycles.
  • GDR: This repository only contains security updates and critical bug fixes which will also be included in the next MS SQL Server release.

To add the repositories, run the command:

$ sudo curl https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo -o /etc/yum.repos.d/mssql-server-2019.repo 
$ sudo curl https://packages.microsoft.com/config/rhel/8/prod.repo -o /etc/yum.repos.d/msprod.repo
Add Microsoft SQL Server Repository
Add Microsoft SQL Server Repository

Step 2: Install Microsoft SQL Server and Tools

Once the repository is added, install Microsoft SQL Server using the DNF package manager as provided.

$ sudo dnf install mssql-server
Install Microsoft SQL Server in Linux
Install Microsoft SQL Server in Linux

Thereafter, install Microsoft SQL server command-line tools.

$ sudo dnf install mssql-tools unixODBC-devel
Install Microsoft SQL Server Tools
Install Microsoft SQL Server Tools

Along the way, Accept the license Terms by typing ‘YES’.

Microsoft SQL Server License
Microsoft SQL Server License

When the installation is done, confirm that the Microsoft SQL Server is installed using the rpm command:

$ rpm -qi mssql-server

The output provides a wealth of information including the version, Release, and architecture among other details.

Verify Microsoft SQL Server Installation
Verify Microsoft SQL Server Installation

Step 3: Initialize MS SQL Database Engine in Linux

So far, we have installed Microsoft SQL Server and all the essential command-line tools. We need to start the database engine before we log in and begin interacting with it.

$ sudo /opt/mssql/bin/mssql-conf setup

You will be required to select an edition of SQL Server. For convenience, select the second option [ 2 ] which provides a Developer Edtion which is free but without production rights.

Initialize Microsoft SQL Server in Linux
Initialize Microsoft SQL Server in Linux

Thereafter, accept the license Terms and specify the Administrator password.

Setup SQL Server Admin Password
Setup SQL Server Admin Password

The setup will complete successfully and the SQL server will be started.

SQL Server Setup Completed
SQL Server Setup Completed

To verify the running status of the MS SQL server, run the command:

$ sudo systemctl status mssql-server.service
Check SQL Server Status
Check SQL Server Status

You can enable it to start on boot time as follows.

$ sudo systemctl enable mssql-server.service

Thereafter, export the path /opt/mssql/bin/ as demonstrated.

$ echo 'export PATH=$PATH:/opt/mssql/bin:/opt/mssql-tools/bin' | sudo tee /etc/profile.d/mssql.sh

Then activate the /etc/profile.d/mssql.sh file.

$ source /etc/profile.d/mssql.sh

MS SQL listens on port 1433 by default. To allows external users access to the server, we need to open this port across the firewall.

$ sudo firewall-cmd --add-port=1433/tcp  --permanent
$ sudo firewall-cmd --reload

Perfect! Let us now access and test the server.

Step 4: Login and Test MS SQL server in Linux

Before testing, make sure to check the version of MS SQL installed, use the sqlcmd utility to perform an SQL query

$ sqlcmd -S localhost -U SA -Q 'select @@VERSION'

Authenticate and hit ENTER. You should get the output shown.

Check SQL Server Version
Check SQL Server Version

To exit invoke the command.

$ exit

Once again login and run the following command:

$ sqlcmd -S localhost -U SA

Authenticate with your password and hit ENTER. You can list the names of the users in the table which stores users’ credentials.

1> SELECT name FROM sys.sysusers;
2> GO
Connect to SQL Server
Connect to SQL Server

To create a database and list all the databases run the commands.

CREATE DATABASE tecmint_db;
SELECT name FROM sys.databases;
GO
Create SQL Database
Create SQL Database

You can drop a database by running:

DROP DATABASE tecmint_db;
GO

The commands delete or drop the entire database.

Conclusion

That’s it. We have successfully installed the MS SQL server on RHEL, CentOS, Rocky Linux, and AlmaLinux. and tested a few commands.

Ravi Saive
I am an experienced GNU/Linux expert and a full-stack software developer with over a decade in the field of Linux and Open Source technologies

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

1 Comment

Leave a Reply
  1. While it is nice to know how to do all of this by hand, it seems more complicated for RHEL/CentOS/Rocky/Alma systems vs just using Ansible. With the Ansible collection for Microsoft SQL Server, you just dnf install ansible-collection-microsoft-sql on a system based on RHEL 8.5.

    then create a mssql.yml file and you can deploy a SQL Server in under a minute. Plus it handles advanced tuning and securing the environment with TLS encryption as well.

    Reply

Leave a Reply to Louis Imershein Cancel reply

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.