Desde hace ya un tiempo Microsoft da soporte para la instalación de SQL Server en distribuciones Linux. Aunque algunas de las características disponibles en Windows no están disponibles en la versión para Linux es una gran alternativa a Oracle, Mysql, PostgreSql, que ya llevan tiempo en Linux. A continuación, os detallamos los pasos a seguir para instalar SQL Server 2019 en Ubuntu 20.04.
Características no admitidas en Linux
Podéis consulta la lista de características no admitidas en el siguiente enlace Características y servicios no admitidos.
Requisitos para la instalación.
- Ubuntu 20.04 (También disponible en Ubuntu 18.04, Red Hat, Suse, Docker).
- 2GB de RAM como mínimo.
- 6GB de espacio en disco libres.
Instalar SQL Server 2019
El primer paso que tenemos que hacer para la instalación es añadir el repositorio de Microsoft. Para ello ejecutaremos:
# wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
# add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"
# apt update
Ahora que ya tenemos añadido el repositorio podemos proceder a instalar SQL Server 2019 con el siguiente comando:
# apt-get install -y mssql-server
Ya tenemos instalado SQL Server 2019 y ahora solo nos quedaría ejecutar la configuración inicial.
Configuración SQL Server 2019
Una vez instalado SQL Server 2019 es necesario ejecutar "mssql-conf setup" para establecer la contraseña de acceso y la elección de la edición que necesitamos de SQL Server 2019. Para ello ejecutamos el siguiente comando:
# /opt/mssql/bin/mssql-conf setup
Acto seguido nos pedirá que escojamos la versión deseada. Para el ejemplo escogemos la versión "Standard" por lo que escribimos "5" y seguimos con el proceso.
# root@sql-server:~# /opt/mssql/bin/mssql-conf setup
usermod: no changes
Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
8) I bought a license through a retail sales channel and have a product key to enter.
Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x409
Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.
Enter your edition(1-8):
Aceptamos los términos.
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=2104294&clcid=0x409
The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409
Do you accept the license terms? [Yes/No]:
Establecemos la contraseña de acceso para finalizar la configuración inicial:
Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...
The licensing PID was successfully processed. The new edition is [Standard Edition].
ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server.service → /lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.
Verificamos con el siguiente comando que SQL Server 2019 esté ejecutándose:
# root@sql-server:~# systemctl status mssql-server --no-pager
● mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-06-07 14:01:41 CEST; 1min 1s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 52196 (sqlservr)
Tasks: 122
Memory: 563.7M
CGroup: /system.slice/mssql-server.service
├─52196 /opt/mssql/bin/sqlservr
└─52243 /opt/mssql/bin/sqlservr
Instalación de mssql-tools
Para poder administrar SQL Server 2019 desde la linea de comandos es necesario instalar "mssql-tools". Para ello ejecutamos:
# curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
# curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
# apt update
# apt-get install mssql-tools unixodbc-dev
Por últimos tenemos que añadir "mssql-tools" al PATH del sistema. Para ello ejecutamos:
# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
# source ~/.bashrc
Ya tenemos instalado y configurado SQL Server 2019 en Ubuntu 20.04.
Conexión local a SQL Server 2019 y creación de una base de datos de test
Para conectarnos localmente al SQL Server ejecutamos:
# sqlcmd -S localhost -U SA -P contraseña
Para crear una base de datos ejecutamos:
# 1> CREATE DATABASE Test
# 1> GO
Para listar las bases de datos ejecutamos:
# 1> SELECT Name from sys.Databases
# 1> GO
Nos devolverá lo siguiente:
Name
--------------------------------------------------------------------------------------------------------------------------------
master
tempdb
model
msdb
Test2
(5 rows affected)
Conexión remota a SQL Server 2019
Para poder conectar a SQL Server 2019 será necesario abrir el puerto 1433 TCP para permitir las conexiones remotas. En el siguiente enlace explicamos Cómo crear una regla de firewall.