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.

If you liked this article, then do subscribe to email alerts for Linux tutorials. If you have any questions or doubts? do ask for help in the comments section.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

Got something to say? Join the discussion.

Have a question or suggestion? Please leave a comment to start the discussion. Please keep in mind that all comments are moderated and your email address will NOT be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.