How Install Microsoft SQL Server on Ubuntu / RHEL / Centos / Docker
So that day have come now, MSFT has to port their software to Linux in order to stay relevant. MS SQL Server preview have come out and it is supported on Ubuntu, CentOS, RHEL and Docker container. In this article, we are going to walk through how to install Microsoft SQL Server on linux platforms versions (CentOS / RHEL 7 and Ubuntu 16.04 LTS). The installation of the software is straightforward so let's start.Installing MS SQL Server on CentOS or RHEL
As root, issue this command to add Microsoft repositorycurl https://packages.microsoft.com/config/rhel/7/mssql-server.repo > /etc/yum.repos.d/mssql-server.repoAfter the repository have been added, log in as non-root user with sudo rights. I will do it like this, you change for your username:
su mikiNext we will install the MS SQL Server
sudo yum install mssql-serverAfter the yum have finished installing the package, we need to run the script which is similar to mysql_secure_install script.
sudo /opt/mssql/bin/sqlservr-setupComplete the prompt like this:
If firewalld is not installed and enabled by default (in minimal install sometimes isn't) lets enable it:
sudo yum install firewalldEnable it to start at boot
sudo systemctl enable firewalldStart it for this session
sudo systemctl start firewalldAnd add rules so SQL server can work
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanentCheck if SQL server is running
sudo firewall-cmd --reload
systemctl status mssql-server
Installing on Ubuntu
If you are using Ubuntu, here is how to install it. First lets enter superuser modesudo suLets add the key for the repository
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -Then add repository
curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list > /etc/apt/sources.list.d/mssql-server.listAnd update sources list
apt updateAfter this we can switch to non-root user either with su username or by exiting
exitNext we install the MS SQL server by following command
miki@ubuntu-1:~$ sudo apt-get install -y mssql-serverSame as on centos, we need to run the script
sudo /opt/mssql/bin/sqlservr-setupAnd check if it is running
systemctl status mssql-server
Docker image
A third way to use Microsoft SQL Server is with docker image. If you have working docker installation, you can run this on any Linux distribution. For instruction how to install docker on your distribution, you can visit official docker site.When you have docker installed we can proceed to pulling the docker image
sudo docker pull microsoft/mssql-server-linuxWe will need directory for persistent volume for the database
mkdir ~/mssqlThis command will start the docker container with this image and with /home/miki/mssql as data dir. You change this path for your data dir
sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -v /home/miki/mssql:/var/opt/mssql -d microsoft/mssql-server-linux
Connecting to the MS SQL Server
In order to connect to the server, you need mssql tools which are not part of mssql server install. Here is how to install themOn Ubuntu
As super user add key for new repository (yes, it is another repo, not same as mssql)curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -Add repository
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/msprod.listUpdate sources list
sudo apt-get updateLog in as non-root
su mikiInstall the tools
sudo apt-get install mssql-tools
On CentOS
As root run run this command to add repo:sudo curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repoSwitch to normal user
su mikiInstall the tools
sudo yum install mssql-toolsOn both CentOS and Ubuntu, you would need to accept EULA while install is in the process.
To connect the DB server, you run following command
sqlcmd -S localhost -U SA -P 'YourPassword'Where YourPassword is the password you entered when you ran sqlservr-setup script. This should give you the mssql prompt
Working with SQL server
Now that we done with the install and have accessed the server, lets use it. For example, this commands will create database linoxide and change usage to it.1> CREATE DATABASE linoxide;In order to execute the command, after command you need to type GO as next line. Showing all databases is done with following command
2> GO
1> USE linoxide;
2> GO
Changed database context to 'linoxide'.
1>
SELECT Name from sys.Databases;